懒性加载的第二种使用场景:下拉加载 。在列表最底部部署一个占位元素且该元素无任何高度或实体外观,只需确认占位元素进入可视区域就请求接口加载数据 。
<ul><li></li><!-- 很多<li> --></ul><!-- 也可将#bottom以<li>的形式插入到<ul>内部的最后位置 --><div id="bottom"></div>复制代码const bottom = document.getElementById("bottom");const observer = new IntersectionObserver(nodes => {const tgt = nodes[0]; // 反正只有一个if (tgt.isIntersecting) {console.log("已到底部,请求接口");// 执行接口请求代码}})observer.observe(bottom);复制代码优化扫码识别通常移动端浏览器都会配备长按二维码图片识别链接的功能,但长按二维码可能无法识别或错误识别 。二维码表面看上去是一张图片,可二维码生成方式却五花八门,二维码生成方式有以下三种 。
- 使用<img>渲染
- 使用<svg>渲染
- 使用<canvas>渲染
一个页面可能存在多个二维码,若长按二维码只能识别最后一个,那只能控制每个页面只存在一个二维码 。
自动播放媒体常见媒体元素包括音频<audio>和视频<video>,为了让用户得到更好的媒体播放体验与不盲目浪费用户流量,大部分移动端浏览器都明确规定不能自动播放媒体或默认屏蔽autoplay 。为了能让媒体在页面加载完成后自动播放,只能显式声明播放 。
const audio = document.getElementById("audio");const video = document.getElementById("video");audio.play();video.play();复制代码对于像微信浏览器这样的内置浏览器,还需监听其应用SDK加载完成才能触发上述代码,以保障WebView正常渲染 。其他内置浏览器同理,在此不作过多介绍 。document.addEventListener("WeixinJSBridgeReady", () => {// 执行上述媒体自动播放代码});复制代码在苹果系统上明确规定用户交互操作开始后才能播放媒体,未得到用户响应会被Safari自动拦截,因此需监听用户首次触摸操作并触发媒体自动播放,而该监听仅此一次 。document.body.addEventListener("touchstart", () => {// 执行上述媒体自动播放代码}, { once: true });作者:JowayYoung
链接:
https://juejin.cn/post/6921886428158754829
来源:掘金
著作权归作者所有 。商业转载请联系作者获得授权,非商业转载请注明出处 。
推荐阅读
- Vue前端开发规范
- MySQL必须要掌握的常用查询语句
- 嘘,认真看!Layui一定是Java程序员必备后台前端框架
- JavaScript前端各种文件下载功能的实现
- web前端HTML高频面试题
- 防火墙必须掌握的区域特性与划分
- 前端工程师如何判断一个对象是否有某个属性?
- 如何快速掌握Web前端技术?
- 2021年Web开发必须知道的7大顶级趋势
- 路由器经常掉线,必须重新插拔网线才能上网。什么原因?
