日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

React自定義視頻全屏按鈕實現全屏功能_React

作者:柒留心 ? 更新時間: 2022-12-06 編程語言

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

前言

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

欄目分類
最近更新