使用Screenfull库来实现全屏效果
今天介绍一个Javascript的第三方库screenfull,简单易用,在github上已经有5000多🌟了
1. 使用前需要先安装,利用npm install就行
npm install screenfull
2.介绍几个核心方法和属性:
2.1 screenfull.toggle()
这个方法会请求全屏,如果当前是全屏则会退出全屏。
2.2 screenfull.isFullscreen
返回一个布尔值,当前是否是全屏状态。
2.3 screenfull.isEnabled
返回一个布尔值,是否当前可以进入全屏。
注意:这个第三方库支持电脑桌面或ipad上使用Safari浏览器,但是iphone是不行的。
3. 实例:
下面介绍在个人博客中使用此第三方库的例子。这里需要先定义一个变量来表示当前是否全屏的状态,默认初始化是false。然后,这里根据状态值判断展示不同的小图标icon,当点击图标时,会调用screenFullToggle函数来使用toggle()方法。当每次全屏或退出全屏之后,再将fullscreen的状态置反。具体代码如下:
state = {
fullScreen: false
}
screenFullToggle = (fullScreen) => {
if (screenfull.isEnabled) {
screenfull.toggle()
this.setState({
fullScreen: !fullScreen
})
}
}
render() {
const {fullScreen} = this.state
const path = this.props.location.pathname
return (
<div className={'blog-nav'}>
<span>
<a href={'#/blog/home'} className={'header-left'}>
Martin's Blog
</a>
</span>
<span>
{fullScreen ?
<div className={'header-right'} onClick={() => this.screenFullToggle(fullScreen)}>
<ShrinkOutlined/></div>
: <div className={'header-right'} onClick={() => this.screenFullToggle(fullScreen)}>
<ArrowsAltOutlined/></div>}
全屏前:
全屏后:按esc键可以退出全屏模式
参考资料:
1. github地址:https://github.com/sindresorhus/screenfull.js