“JS API”目录存档

DOM小测28期 – DOM节点文档前后位置判断

2019年03月2日,星期六

DOM小测头图

本题主要考察如何判断DOM节点文档前后位置,父子关系等。我看了下最后的回答,近9成的回答使用了非常啰嗦的方法,比例之高,实在出乎意料。实际上,本题答案只需寥寥数行,因为有原生的API,contains()可以判断节点是否有包含关系;compareDocumentPosition()可以判定任意位置关系。

阅读全文…

深入Node.compareDocumentPosition API

2019年03月2日,星期六

DOM节点树位置对比头图

Node.compareDocumentPosition()方法可以用来对比两个HTML节点在文档中的位置关系,包括前后,父子,自身以及跨文档。不仅是DOM节点,文本节点,注释节点甚至属性节点的位置关系都可以判定,很强。

阅读全文…

使用document.scrollingElement控制窗体滚动高度

2019年02月22日,星期五

介绍一个更加兼容、更加标准的设置窗体滚动高度的方法,那就是document.scrollingElement,兼容性足矣在实际项目中应用。JS基础API,人人必须了解的特性,学到就是赚到。

阅读全文…

DOM基础小测27期答疑文字版-窗体滚动二三事

2019年01月26日,星期六

小测头图

本次小测借一个简单案例跟大家讲讲CSSOM视图模式(CSSOM View Module)相关的一些API及其特性,适用场景等,总结出一些最佳实践,明确一些技术细节,让技术更加精纯。

阅读全文…

HTML5 video视频播放Picture-in-Picture画中画技术

2018年12月2日,星期日

视频画中画技术

Chrome 70已经原生支持HTML5视频播放时候Picture-in-Picture,也就是俗称的画中画技术,也就是很多视频网站看评论时候,播放视频变小挂在右下角的这种交互技术。实际上,这里的画中画要比当前视频网站的画中画要更强,强在其是一个客户端层面的接口,小视频窗口是操作系统窗体级别的,就算你的浏览器切换到其他选项卡页面,或者最小化,也会在你电脑右下角播放视频。

于是乎,我们可以一边码代码一边看网页小视频了!

阅读全文…

CSS scroll-behavior和JS scrollIntoView让页面滚动平滑

2018年10月21日,星期日

浏览器原生平滑滚动缩略图

从去年年底开始,浏览器已经开始支持的原生平滑滚动定位,CSS scroll-behavior属性和JS scrollIntoView()方法都可以。本文就将捋一捋这些平滑滚动新特性的使用方法,实际效果,以及如何在实际中应用等。一如既往,丰富配图,含GIF演示和视频截屏,必要的源代码展示和详尽的demo,希望本文内容能够对您的学习有所帮助。

阅读全文…

拖拽献祭中的黑山羊-DataTransfer对象

2018年09月30日,星期日

解构datatransfer对象

伟大的安兹·乌尔·恭释放了一个超位魔法——拖拽献祭中的黑山羊魔法!凡是不能手写页面元素拖拽效果者,即死,需10日才能复活!顿时,无数前端手足无措,惊恐万分,仓皇而逃,但终究难逃一死。此时,一位小白前端横空出世,靠着解构此魔法的关键DataTransfer对象,破解了这个超位魔法,挽救了无数的前端开发,而其破解的详细信息已经记录在这篇文章中……

阅读全文…

看,for..in和for..of在那里吵架!

2018年08月6日,星期一

文章缩略图

今天天气不错,瞒着老婆去参加ChinaJoy,嘿嘿,好多周边,嘿嘿,好多萌妹子。突然,旁边一个戴眼镜的小胖子一声大叫:“看,for..in和for..of在那里吵架!”

我顺着望去,只见2点钟方向有一群穿着格子衫背着电脑包的人在围观什么,我立马发现事情不简单,就跟着过去围观,结果意想不到的事情发生了……

阅读全文…

原来浏览器原生支持JS Base64编码解码

2018年08月4日,星期六

JS Base64编码解码头图

就在数月前,一个前端HTML字符信息转Base64的需求,我是毫不犹豫去找了个开源的base64.js,根据文档上语法一使用,嘿,数据准确,功能良好。当时弄完还洋洋得意,以为是个完美的解决。

结果,今天发现,尼玛原来浏览器很早就有了原生的JS Base64加密解密方法,显然,上面这种洋洋得意的做法完全就是瞎子点灯——白费蜡!究竟是什么方法呢?有没有什么使用上的坑呢?点击进去一起一看究竟吧~

阅读全文…

万岁,浏览器原生支持ES6 export和import模块啦!

2018年08月2日,星期四

万岁,浏览器原生支持ES6 export和import模块啦!不仅支持静态import,还支持动态import。原以为和Node.js中的模块import一样,比较简单容易理解,结果一研究发现,在web浏览器中,原生的export和import需要知道的细节还真多,也很有必要了解。

本文内容较多,篇幅较长,丰富的demo和源代码展示,有一定深度,希望本文内容能够对您的学习有所帮助。

阅读全文…