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

      

  • 相关阅读:
    常用输入框组组合
    Select2的远程数据操作
    利用Mocking Framework 单元测试Entity Framework
    Newtonsoft.Json在转换指定时间格式时默认是UTC时间
    对于使用jquery,chosen,easyui统一进行页面元素禁用公共方法
    SQL_ORACLE速记---比较两张表的数据类型和数据长度是否一致;导出数据表类型和长度
    js常用方法速记
    前端发起Ajax,MVC中的Action却接收不到参数
    base 和 this
    方法
  • 原文地址:https://www.cnblogs.com/gqx-html/p/13853766.html
Copyright © 2011-2022 走看看