React自定义视频全屏按钮实现全屏功能

 更新时间:2022年11月03日 17:20:18   作者:柒留心  
这篇文章主要介绍了React自定义视频全屏按钮实现全屏功能,通过绘制全屏按钮,并绑定点击事件,编写点击事件,通过实例代码给大家详细讲解,需要的朋友可以参考下

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

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();  
}

到此这篇关于React自定义视频全屏按钮的文章就介绍到这了,更多相关React自定义按钮内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React Native第三方平台分享的实例(Android,IOS双平台)

    React Native第三方平台分享的实例(Android,IOS双平台)

    本篇文章主要介绍了React Native第三方平台分享的实例(Android,IOS双平台),具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • 编写简洁React组件的小技巧

    编写简洁React组件的小技巧

    这篇文章主要介绍了编写简洁React组件的小技巧,帮助大家更好的理解和学习使用React,感兴趣的朋友可以了解下
    2021-04-04
  • React嵌套组件的构建顺序

    React嵌套组件的构建顺序

    这篇文章主要介绍了React嵌套组件的构建顺序,帮助大家更好的理解和学习使用React,感兴趣的朋友可以了解下
    2021-04-04
  • react-dnd API拖拽工具详细用法示例

    react-dnd API拖拽工具详细用法示例

    这篇文章主要为大家介绍了react-dnd API拖拽工具的详细用法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Rust中Trait的使用

    Rust中Trait的使用

    在Rust中,Trait是一个核心概念,它允许我们定义类型应该具有的行为,本文就来具体介绍一下Rust中Trait的使用,感兴趣的可以了解一下,感兴趣可以了解一下
    2024-03-03
  • React路由封装的实现浅析

    React路由封装的实现浅析

    路由是React项目中相当重要的概念,对于功能较为复杂的网页来说,必然会涉及到不同功能间的页面跳转,本篇文章将对React官方维护的路由库React-Router-Dom的使用和常用组件进行讲解,同时对路由组件传递param参数的方式进行讲解,希望对各位读者有所参考
    2022-08-08
  • React中setState的使用与同步异步的使用

    React中setState的使用与同步异步的使用

    这篇文章主要介绍了React中setState的使用与同步异步的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • react hooks入门详细教程

    react hooks入门详细教程

    这篇文章主要介绍了react hooks入门详细教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 一文带你深入理解React中的Context

    一文带你深入理解React中的Context

    React Context是React提供给开发者的一种常用的状态管理机制,本文主要来和大家讲讲为什么需要Context,又是如何使用Context的,感兴趣的可以了解一下
    2023-05-05
  • React Agent 自定义实现代码

    React Agent 自定义实现代码

    在使用langchain的ReactAgent遇到问题后,作者尝试自定义ReactAgent实现,通过详细分析langchain中的agent功能和问题,结合React思想,作者设计了新的agent逻辑并在GitHub上分享了代码,新的ReactAgent通过改进prompt和工具调用逻辑,提升了任务执行的效果和稳定性
    2024-10-10

最新评论