#头条创作挑战赛#
本文同步本人掘金平台的文章:https://juejin/post/7135830434528624654
今天,我们来探讨的问题是:
当点击图片的时候,我们需要其全屏展示,当我们再次点击的时候,图片退出全屏播放。
PS: 我们退出全屏播放的情况一般是按 esc 退出。图片可以延伸到任何的 DOM 节点
在文末,我会将问题升级,留一个题目给读者思考
图片全屏,这个跟文章全屏的效果一样,比如下面的文章全屏:
就是一个元素铺平整个屏幕
思路那么,问题我们知道了。解决问题的思路是怎么样的呢?
我们获取到图片元素的 DOM 节点我们调用全屏的函数进行全屏展示浏览器监听点击事件,当图片是全屏的状态,再次点击图片的时候,调用函数退出全屏好了,思路有了,我们来实现下。
具体实现假设我们有 html 代码如下:
<img id="image" src="path/to/image.postfix" alt="img" />复制代码
现在我们编写下 javascript 代码。
// 退出全屏ngAfterViewInit() { const image = document.getElementById('image'); image.addEventListener('click', (event: any) => { if(document.fullscreenElement === image) { document.exitFullscreen(); } event.preventDefault(); })}// 全屏查看public fullscreenView(): void { const image = document.getElementById('image'); image.requestFullscreen()} 复制代码
这里我用了 typescript 来编写
当然,上面的代码并没有考虑相关的兼容性。
requestFullscreen 和 exitFullscreen 方法对现代的浏览器支持还是很可以的,在 PC 端上展示毫无压力。
但是,我们还是得对代码进行浏览器兼容写法:
这里我新建了个 utils.ts 的文件:
export class Utils { public static gotoFullscreen(dom: any): void { if (dom.requestFullscreen) { dom.requestFullscreen() } else if (dom.mozRequestFullScreen) { dom.mozRequestFullScreen() } else if (dom.webkitRequestFullscreen) { dom.webkitRequestFullscreen() } else if (dom.msRequestFullscreen) { dom.msRequestFullscreen() } else { console.error('当前浏览器不支持部分全屏!') } } public static exitFullscreen(dom: any): void { if (dom.exitFullscreen) { dom.exitFullscreen() } else if (dom.webkitExitFullscreen) { dom.webkitExitFullscreen() } else if (dom.msExitFullscreen) { dom.msExitFullscreen() } }}复制代码
上面两个方法都是静态方法,调用方式 类名.静态方法,比如:Utils.gotoFullscreen(dom)。
问题升级单点击图片,我们需要其全屏展示。然后设置全屏时候,右上角有一个退出的按钮。点击退出按钮,退出全屏展示。
感兴趣的读者可以先自己尝试下。
这里我给出简单的思路,可以作为参考。
答案(点击展开)
1. 设定布局,将一个 div 包裹图片2. 在 div 中设置一个按钮的元素 button,并对 button 进行 css 布局3. 在图片全屏的时候,显示 button,并对 button 进行按钮事件(调用退出全屏的函数)复制代码
你学废了?
如果读者觉得文章还可以,不防一键三连:关注➕点赞➕收藏
#头条创作挑战赛#
本文同步本人掘金平台的文章:https://juejin/post/7135830434528624654
今天,我们来探讨的问题是:
当点击图片的时候,我们需要其全屏展示,当我们再次点击的时候,图片退出全屏播放。
PS: 我们退出全屏播放的情况一般是按 esc 退出。图片可以延伸到任何的 DOM 节点
在文末,我会将问题升级,留一个题目给读者思考
图片全屏,这个跟文章全屏的效果一样,比如下面的文章全屏:
就是一个元素铺平整个屏幕
思路那么,问题我们知道了。解决问题的思路是怎么样的呢?
我们获取到图片元素的 DOM 节点我们调用全屏的函数进行全屏展示浏览器监听点击事件,当图片是全屏的状态,再次点击图片的时候,调用函数退出全屏好了,思路有了,我们来实现下。
具体实现假设我们有 html 代码如下:
<img id="image" src="path/to/image.postfix" alt="img" />复制代码
现在我们编写下 javascript 代码。
// 退出全屏ngAfterViewInit() { const image = document.getElementById('image'); image.addEventListener('click', (event: any) => { if(document.fullscreenElement === image) { document.exitFullscreen(); } event.preventDefault(); })}// 全屏查看public fullscreenView(): void { const image = document.getElementById('image'); image.requestFullscreen()} 复制代码
这里我用了 typescript 来编写
当然,上面的代码并没有考虑相关的兼容性。
requestFullscreen 和 exitFullscreen 方法对现代的浏览器支持还是很可以的,在 PC 端上展示毫无压力。
但是,我们还是得对代码进行浏览器兼容写法:
这里我新建了个 utils.ts 的文件:
export class Utils { public static gotoFullscreen(dom: any): void { if (dom.requestFullscreen) { dom.requestFullscreen() } else if (dom.mozRequestFullScreen) { dom.mozRequestFullScreen() } else if (dom.webkitRequestFullscreen) { dom.webkitRequestFullscreen() } else if (dom.msRequestFullscreen) { dom.msRequestFullscreen() } else { console.error('当前浏览器不支持部分全屏!') } } public static exitFullscreen(dom: any): void { if (dom.exitFullscreen) { dom.exitFullscreen() } else if (dom.webkitExitFullscreen) { dom.webkitExitFullscreen() } else if (dom.msExitFullscreen) { dom.msExitFullscreen() } }}复制代码
上面两个方法都是静态方法,调用方式 类名.静态方法,比如:Utils.gotoFullscreen(dom)。
问题升级单点击图片,我们需要其全屏展示。然后设置全屏时候,右上角有一个退出的按钮。点击退出按钮,退出全屏展示。
感兴趣的读者可以先自己尝试下。
这里我给出简单的思路,可以作为参考。
答案(点击展开)
1. 设定布局,将一个 div 包裹图片2. 在 div 中设置一个按钮的元素 button,并对 button 进行 css 布局3. 在图片全屏的时候,显示 button,并对 button 进行按钮事件(调用退出全屏的函数)复制代码
你学废了?
如果读者觉得文章还可以,不防一键三连:关注➕点赞➕收藏
OPPO Reno5系列已经开售一段时间了,相信不少朋友都已经拿到手机了。Reno5系列搭载了OPPO最新的ColorOS 11系统。ColorOS 11进行了大幅升级,在提升系统界面视觉效果的同时,还具有很有实用小功能。其中远程守护和屏幕分享是十分值得关注的功能,可以满足你对家人的守护需求,我们一起来体验一下。
远程守护:使用方便,功能实用
使用OPPO Reno5系列的远程守护功能很简单,只需打开系统内置的远程守护APP,通过扫码的方式绑定手机即可。比如你可以把你的手机和父母的绑定,这样你就能时刻了解家人的动态。
完成绑定后,打开远程守护APP就能看到被守护人手机的基本信息,包括今天走路步数、手机电量,还有就是家人的实时位置和应用使用时间、安全事件等,这些关键的信息都能在APP首页直接看到。
你可以通过守护设置来修改需要关注的内容,可以取消关注应用使用情况、手机安全事件等,过滤掉你不需要关心的信息,降低干扰。
远程守护功能除了可以让你看到家人的相关信息,还提供了丰富可自定义的关怀功能。你可以为家人手动圈定一个守护范围,当家人的实时位置超出设定范围时,你就会及时收到提醒,时刻掌握家人情况。
比如你家孩子出去玩,你一看手机就知道孩子在哪里,还可以通过APP上的呼叫功能直接联系,一切都在掌握中。
在远程守护APP中,你可以限制被守护人手机某个应用的可用时长。比如你设置了某个游戏只能用1个小时,在使用指定应用超时后,应用便会自动退出,可以有效防止孩子沉迷游戏或者其它手机应用。
你还能够设置手机在某个时间段为停用状态,其它应用均为不可用状态,仅保留电话、短信、设置可以使用。你可以把孩子上课期间都设置为停用状态,这样就不用担心孩子上课时间玩手机,这种模式下也可以单独允许某个应用例外,可以满足不同场景的需求。
当手机进入停用状态,桌面受限制的应用会变成暗灰色,点击应用可以申请解除限制。比如孩子上课需要用到某个应用,可以申请解除限制,守护人在手机上同意即可使用,日常使用更加灵活。
值得一提的是,当守护人更改其它控制功能时,同样需要被守护人在手机上同意才能完成操作。此前已经同意的控制设置会在对应时间段自动执行,不再需要申请同意,在考虑人性化的同时,也能够减少操作步骤。
远程守护APP还可以检测到被守护人手机的电话、支付风险、手机病毒等安全问题,你在手机远程上就能帮忙处理风险问题,对于不太懂手机的家人来说,这个功能非常实用。
屏幕分享:远程解决问题,还有新玩法
OPPO Reno5系列内置屏幕分享功能,通过该功能可以远程操作家人的手机,帮助家人解决各种手机问题。
在系统设置的连接共享页面就能找到屏幕共享功能,点击发起共享,输入对方OPPO账号的手机号码就能发起屏幕共享,操作简单。接受邀请的一方会出现弹窗,接受邀请即可。
成功连接屏幕共享后,可以授权对方操作手机,这样你就可以为家人安装更新软件、设置闹钟、添加通讯录联系人等,家人遇到手机操作难题也不用愁了。你还可以开启显示操作轨迹功能,这样家人就能够看到你的每一步操作,更加生动地教家人学习新功能。
在进行屏幕共享的同时,还支持开启语音通话,可以随时和家人聊天沟通,更加方便。
OPPO Reno5系列的屏幕分享功能不仅能够解决问题,还能实现一些有趣的玩法。比如异地情侣,可以通过OPPO Reno5系列的屏幕分享功能一起追剧看电影等。
屏幕分享功能支持同步视频分享,一台手机播放,两个人就能看同一部电影。受邀方可以点击放大全屏 ,这样就更有沉浸感。你还可以通过语音通话功能实时讨论剧情,仿佛两个人就在一起看电影,增添了温暖,更加温馨有爱。
通过屏幕分享功能,你还可以在远程和家人朋友一边分享照片一边聊天,即使相隔千里也能感受到彼此的温暖。类似的场景还有非常多,屏幕分享功能提供了一个很好的拉近距离方式,有趣的同时也很方便。
在实际体验中,屏幕分享功能即使在不同网络下,画面延迟也不会特别高,可用性非常好。当然,你要想获得更好的体验,最好能够保证比较好的网络条件。
OPPO Reno5系列所自带的远程守护、屏幕分享功能都相当实用,可以让你为家人增添多一份守护,时刻关注家人。即使没有陪伴在家人的身边,通过远程守护功能可以让你更加安心。
屏幕分享功能很好解决了家人遇到的各种手机问题,远程就能快速解决,更加方便。在科技时代,让不太懂手机的老年人也能更容易享受科技带来的便利,这也体现了OPPO在做产品时候在人文关怀方面的思考。
如果你在用OPPO Reno5系列,不妨尝试一下远程守护和屏幕分享功能,可以助你应对更多场景,带来更多乐趣和更加省心的使用体验。