这个问题也很经典,本人在18年的时候被问到过,当时第一次遇到经一位面试官解释后有了了解,以一个场景来说就是旧版本手机浏览器在触发click事件会有300ms左右的延迟,这个是故意而为之,当时会导致的问题一个就是体验不好,另一个就是点击穿透(比如手点击了上层,这时我通过代码手段隐藏了上层元素,300ms后,下层元素则会响应这个click事件)。
值得注意的是到现在大多数浏览器已经在内部优化了,比如Chrome
这个问题也很经典,本人在18年的时候被问到过,当时第一次遇到经一位面试官解释后有了了解,以一个场景来说就是旧版本手机浏览器在触发click事件会有300ms左右的延迟,这个是故意而为之,当时会导致的问题一个就是体验不好,另一个就是点击穿透(比如手点击了上层,这时我通过代码手段隐藏了上层元素,300ms后,下层元素则会响应这个click事件)。
值得注意的是到现在大多数浏览器已经在内部优化了,比如Chrome
通常来说setTimeout的最小时间间隔为4ms(当然,这也由各浏览器实现决定)。但是为何是4ms?如何设置0ms的延时呢?
经常遇到要将某个元素滚动到可视区域的需求,除了个别需要使用js进行复杂的定位计算外,原生js的scrollIntoView方法可以满足大部分场景了,基础的直接调用Element.scrollIntoView()方法外,还提供了更细粒度的滚动控制。
shell是一个程序,接收输入的命令,然后交由操作系统来执行;终端是图形用户界面,可以与shell进行交互。所以我们经常说的控制台、shell终端就是我们经常使用到的那个黑框小程序。
通常情况下终端是黑底白字,虽然足够简介,但时间久了容易审美疲劳,且对于重要输出信息的提示不够明显,容易被开发人员忽略掉。
有几个月没写东西了,写了一些canvas相关的发布后发现内容是空的,本地构建是成功的,结果服务端构建结果是空文件。无疑,那就是远端构建的问题了。
drawImage是一个非常有趣的方法,可以实现非常有趣的功能,常见的是画布上绘制图片。常见的应用场景就是图片编辑,比如头像的裁剪和缩放。
这次我们会借助canvas提供的方法绘制简单的图形及路径。