zoukankan      html  css  js  c++  java
  • React 全屏Dom

    1. 新建 screen.ts 文件

    /** DOM-全屏 */
    const requestFullScreen = (domName: any) => {
      return new Promise(resolve => {
        let dom: any = document.getElementById(domName);//绑定想要全屏的组件
        if (dom.requestFullscreen) {
          dom.requestFullscreen();
        } else if (dom.mozRequestFullScreen) {
          dom.mozRequestFullScreen();
        } else if (dom.webkitRequestFullScreen) {
          dom.webkitRequestFullScreen();
        }
    
        resolve()
      })
    };
    
    /** DOM-退出全屏 */
    const exitFullscreen = () => {
      return new Promise(resolve => {
        let dom: any = document;
        if (dom.exitFullscreen) {
          dom.exitFullscreen();
        } else if (dom.mozCancelFullScreen) {
          dom.mozCancelFullScreen();
        } else if (dom.webkitCancelFullScreen) {
          dom.webkitCancelFullScreen();
        }
        resolve()
      })
    };
    
    export {
      requestFullScreen,
      exitFullscreen
    }
    

      

    2. 新建 index.tsx

    import React, { Component } from "react"
    import { ExpandOutlined, CompressOutlined } from '@ant-design/icons'
    import { requestFullScreen, exitFullscreen } from '../../utils/screen'
    
    type IndexToProps = {
    }
    type IndexToState = {
      isEnlarge: boolean
    }
    
    class Index extends Component<IndexToProps, IndexToState> {
      constructor(props: IndexToProps) {
        super(props)
        this.state = {
          isEnlarge: false
        }
      }
    
      /** 进入全屏 */
      setRequestFullScreen = (v: number) => {
        requestFullScreen(`${v}card`).then(() => {
          this.setState({
            isEnlarge: !this.state.isEnlarge
          })
        })
      }
    
      /** 退出全屏 */
      setExitFullscreen = () => {
        exitFullscreen().then(() => {
          this.setState({
            isEnlarge: !this.state.isEnlarge
          })
        })
      }
    
      render() {
        return (
          <>
         <div id="bigDom">放大/收缩元素</div> { !this.state.isEnlarge ? <ExpandOutlined onClick={(e) => this.setRequestFullScreen('bigDom')} /> : <CompressOutlined onClick={this.setExitFullscreen} /> } </> ) } } export default Index

      

  • 相关阅读:
    centos7 双网口绑定
    centos docker 修改默认存储路径
    Django 操作已经存在的数据库
    package ‘RPMM’ is not available (for R version 3.6.0)
    关于tornado的raise gen.Retuen()
    tornodo学习之路
    关于微信小程序登录机制
    关于微信小程序更新机制
    过渡结束事件
    移动端动效
  • 原文地址:https://www.cnblogs.com/gqx-html/p/13853766.html
Copyright © 2011-2022 走看看