Ant-Design-Pro-V5: 实现页面全屏。

在这里插入图片描述

一、添加组件页面

/src/components/FullScreen.tsx

import React, { useState } from 'react';
import { Tooltip } from 'antd';
import { FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons';

export default function FullScreen() {
  const [isFullScreen, setIsFullScreen] = useState(true);
  //调用事件
  const fullScreen = () => {
    let isFullScreen = document.webkitIsFullScreen;
    if (!isFullScreen) {
      requestFullScreen();
    } else {
      exitFullscreen();
    }
    setIsFullScreen(isFullScreen);
  };
  //进入全屏
  const requestFullScreen = () => {
    var de = document.documentElement;
    if (de.requestFullscreen) {
      de.requestFullscreen();
    } else if (de.mozRequestFullScreen) {
      de.mozRequestFullScreen();
    } else if (de.webkitRequestFullScreen) {
      de.webkitRequestFullScreen();
    } else if (de.msRequestFullscreen) {
      de.webkitRequestFullScreen();
    }
  };
  //退出全屏
  const exitFullscreen = () => {
    var de = document;
    if (de.exitFullScreen) {
      de.exitFullScreen();
    } else if (de.mozExitFullScreen) {
      de.mozExitFullScreen();
    } else if (de.webkitExitFullscreen) {
      de.webkitExitFullscreen();
    } else if (de.msExitFullscreen) {
      de.msExitFullscreen();
    }
  };
  return (
    <Tooltip placement="bottom" title={<span>{isFullScreen ? '全屏' : '退出全屏'}</span>}>
           {isFullScreen ? (
        <FullscreenOutlined
          style={{
            fontSize: '24px',
          }}
          onClick={fullScreen}
        />
      ) : (
        <FullscreenExitOutlined
          style={{
            fontSize: '24px',
          }}
          onClick={fullScreen}
        />
      )}
    </Tooltip>
  );
}

二、引用组件

在/src/components/RightContent/index.tsx 中引入组件

import { Space } from 'antd';
import React from 'react';
import { SelectLang, useModel } from 'umi';
import Avatar from './AvatarDropdown';
import FullScreen from '../FullScreen';// 引入全屏组件
import styles from './index.less';

const GlobalHeaderRight = () => {
  const { initialState } = useModel('@@initialState');

  if (!initialState || !initialState.settings) {
    return null;
  }

  const { navTheme, layout } = initialState.settings;
  let className = styles.right;

  if ((navTheme === 'dark' && layout === 'top') || layout === 'mix') {
    className = `${styles.right}  ${styles.dark}`;
  }
  return (
    <Space className={className}>
      <div style={{ display: 'flex', alignItems: 'center' }}>
        <FullScreen /> // 使用全屏组件
        <Avatar />
      </div>
    </Space>
  );
};
export default GlobalHeaderRight;
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值