12 个很少使用的 JavaScript Web API,它们将使您的网站登上月球

本文揭示了97%未被充分利用的JavaScript Web API,通过实际示例展示了12个鲜为人知的API,包括屏幕方向API、全屏API、路口观察者API等,帮助提升网站用户体验。每个API都有详细的解释和实际应用,如利用Screen Orientation API检测屏幕方向,全屏API实现沉浸式体验,Intersection Observer API优化元素进入视口时的动画处理,以及Screen Wake Lock API防止屏幕变暗。通过这些API,开发者可以为网站添加更丰富的功能和交互性。
摘要由CSDN通过智能技术生成

有超过 97 个 Web API,而您只使用了其中的 5%。让我们解锁其他 95%!

在规范的黑暗领域漫步了很长时间后,我意识到有太多的技术被遗漏了。

我写这篇文章的目的是让它们曝光。我将使用实际示例向您证明,某些 API 确实值得一试!

每个部分都将彻底检查每个 API,并提供一个有趣的示例来精美地演示实际用例。
📑 目录
🤳 屏幕方向 API
📺️ 全屏 API
📲 路口观察者 API
💤 屏幕唤醒锁定 API
💻️ 屏幕截图 API
📔 索引数据库 API
🧠 本地和会话存储 API
🎨 胡迪尼 API
🕸️ 网络共享 API
📋️ 剪贴板 API
✒️ 选择 API
👀 页面可见性 API
关于肖像模式的警告
在这里插入图片描述
画面太窄。尝试横向模式。

某些应用程序(例如非线性视频编辑器)不适用于垂直设备:它们在窄屏幕上效果不佳!

当然,网络应该是响应式的,但将整个宽布局移植到窄显示器并不总是值得的。

如果我们可以在用户的​​设备向错误的方向旋转时发出警告,那不是很好吗?让我向您介绍… Screen Orientation API!

为了避免错误,检查对屏幕方向 API 的支持很重要。这很简单:if (‘orientation’ in screen)。您将在整篇文章中一次又一次地看到这种模式。
屏幕方向 API
浏览器公开一个名为 的全局变量screen,我们将使用它来访问我们需要的信息。ScreenOrientation可以使用 访问该实例screen.orientation。我们将在本节中使用这个对象。

检测屏幕方向
在这里插入图片描述
屏幕方向类型和角度:https://w3c.github.io/screen-orientation/#dfn-screen-orientation-values-table

与流行的看法相反,屏幕有四种定向方式,如上图所示。但是我们只对知道屏幕是纵向还是横向模式感兴趣,并且很容易编写一个函数来准确地告诉我们:
function getOrientation() {
const isPortrait = screen.orientation.type.startswith(‘portrait’)
return isPortrait ? ‘portrait’ : ‘landscape’
}
锁定屏幕方向
Instagram 等本机应用程序在使用时会锁定屏幕方向。随着PWA 和本机应用程序之间的界限日益模糊,此功能也出现在网络上也就不足为奇了。

虽然支持较少,但也可以使用以下代码片段锁定和解锁屏幕方向:
screen.orientation.lock(orientation)
也不要忘记处理错误,因为正如我已经说过的,这个特性没有得到很好的支持。

让您的网站成为全屏体验
浏览器用大量 UI 元素覆盖我们的网站,分散了用户对重要内容的注意力。

Chrome 移动版屏幕截图,突出显示了浏览器的 UI 元素。

当涉及沉浸式内容时,这尤其是一个问题,例如:

电影,
游戏,
最大化图像。
这样的例子不胜枚举。

值得庆幸的是,全屏 API 的出现扭转了局面!

所有现代浏览器都很好地支持此功能,所以不用担心使用它。

进入全屏模式
令人惊讶的是,任何 DOM 元素都可以进入全屏模式:
el.requestFullscreen()
然而,大多数时候,我们希望整个页面进入全屏。根文档元素 — — 可以在 JavaScript 中使用document.documentElement.

因此,在网络上看到这段代码片段并不罕见:
document.documentElement.requestFullscreen()
离开全屏模式
有多种退出方式。其中一些是浏览器默认的键盘快捷键:ESC和F11。

也可以通过切换标签Ctrl+Tab或跳转窗口离开Alt+Tab。

然而,最重要的离开机制是你——开发者——提供的。您可以通过以下方式以编程方式退出全屏模式:
document.exitFullscreen()
然而,在部署环境中,通过在调用之前检查此函数是否存在来避免错误很重要:
if (document.exitFullscreen) {
document.exitFullscreen()
}
验证用户是否处于全屏模式
如果我们想要实现一个全屏切换,就像开始时在 Codepen中看到的那样,我们需要一种方法来确定全屏模式是否处于活动状态。

使用以下代码片段完全可以做到这一点:
document.fullscreenElement // returns ‘null’ or the fullscreen-enabled DOM element
为了更好的浏览器兼容性,我们必须检查多个属性:
document.fullscreenElement
|| document.mozFullscreenElement
|| document.msFullscreenElement
|| document.webkitFullscreenElement
有了这个,我们可以实现全屏切换:
function toggleFullScreen() {
if (!document.fullscreenElement) {
document.documentElement.requestFullscreen();
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
}
}
}
在元素进入视口时对其进行动画处理
考虑当元素进入视图时您需要做某事的所有时间:

动画它,
加载更多内容(无限滚动),
延迟加载图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值