網站首頁 編程語言 正文
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
前言
React自定義視頻全屏按鈕,實現全屏功能。
一、繪制全屏按鈕
繪制全屏按鈕,并綁定點擊事件:
render() {
return (
<div className={'fullfrequency'}>
<img src={require("./全屏.png") } id="picts" onClick={this.fullScreen} alt="" title="全屏"/>
</div>
);
}
二、編寫點擊事件
定義全屏標識變量
this.state = {
isFullScreen: false//初始為未開啟全屏
}
編寫fullScreen點擊事件函數:
fullScreen = () => {
var picts = document.getElementById("picts");
if (!this.state.isFullScreen) {
this.requestFullScreen();
picts.setAttribute("src",require("./取消全屏.png"));//全屏按鈕變換
picts.setAttribute("title","退出全屏");
} else {
this.exitFullscreen();
picts.setAttribute("src",require("./全屏.png"));//全屏按鈕變換
picts.setAttribute("title","全屏");
}
};
三、編寫相關函數
編寫requestFullScreen函數
requestFullScreen = () => {
var de = document.documentElement;
if (de.requestFullscreen) {
de.requestFullscreen();
} else if (de.mozRequestFullScreen) {
de.mozRequestFullScreen();
} else if (de.webkitRequestFullScreen) {
de.webkitRequestFullScreen();
}
};
編寫exitFullscreen函數
exitFullscreen = () => {
var de = document;
if (de.exitFullscreen) {
de.exitFullscreen();
} else if (de.mozCancelFullScreen) {
de.mozCancelFullScreen();
} else if (de.webkitCancelFullScreen) {
de.webkitCancelFullScreen();
}
};
編寫監聽fullscreen變化事件
watchFullScreen = () => {
const _self = this;
document.addEventListener(
"webkitfullscreenchange",
function() {
_self.setState({
isFullScreen: document.webkitIsFullScreen
});
},
false
);
document.addEventListener(
"fullscreenchange",
function() {
_self.setState({
isFullScreen: document.fullscreen
});
},
false
);
document.addEventListener(
"mozfullscreenchange",
function() {
_self.setState({
isFullScreen: document.mozFullScreen
});
},
false
);
};
在componentDidMount鉤子上掛在監聽
componentDidMount() {
this.watchFullScreen();
}
原文鏈接:https://blog.csdn.net/weixin_43843572/article/details/124983688
相關推薦
- 2022-02-11 idea package合在一起,利用Compact Middle Packages解決 &
- 2022-06-12 Python批量裁剪圖形外圍空白區域_python
- 2023-07-02 Python3中zip()函數知識點小結_python
- 2022-08-21 C語言實現棧的示例詳解_C 語言
- 2023-07-18 IDEA中springboot的熱加載thymeleaf靜態html頁面
- 2022-04-30 C語言實現考勤管理系統_C 語言
- 2024-02-16 springmvc中的數據提交方式
- 2023-06-20 python?中?__init__的意義以及作用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支