分享一个React应用:React自定义视频全屏按钮且实现全屏功能。废话不多说,直接进入正题。
绘制全屏按钮 {#heading-1}
绘制全屏按钮,并绑定点击事件:
render() {
return (
<div className={'fullfrequency'}>
<img src={require("./全屏.png") } id="picts" onClick={this.fullScreen} alt="" title="全屏"/>
</div>
);
}
编写点击事件 {#heading-2}
定义全屏标识变量。
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","全屏");
}
};
编写相关函数 {#heading-3}
编写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();
}
大家是可以试试,如果有问题可以咨询哦!