利用sticky定位实现吸顶列表 发表于 2019-03-22 | 最近在项目里遇到一个需求,有个侧边栏菜单列表,里面的元素在滚动时需要有同级层自动吸顶的效果,示范如下: 当时脑海里想到了 2 个方案: 利用absolute定位,滚动过程中判断需要吸顶的元素是否滚动到了指定位置,然后利用js修改top值 使用sticky定位,它是position的一个可选值,具体 ... 阅读全文 »
popover在快速滚动列表项中的问题及Popper.js源码解析 发表于 2019-02-26 | 我们前端项目里用的组件库是 vue 的element-ui,有个地方用到了popover组件,一个列表中每个列表项在 hover 时都会在popover中展示提示语。这里就出现了一个优化问题:当快速滚动列表项时,即使某个列表项已经隐藏了,可是对应的popover需要过一会才能消失,体验不大好,示范如 ... 阅读全文 »
quicklink源码解析 发表于 2019-01-12 | 前一阵子在逛github时看到一个GoogleChromeLabs推出的缓存工具库quicklink,介绍上说它是Faster subsequent page-loads by prefetching in-viewport links during idle time。也就是说可以提前缓存在接下来 ... 阅读全文 »
webpack loader机制源码解析 发表于 2019-01-03 | 对于webpack loader相信大家都知道它是用于将一个模块转为js代码的,但估计不是每个人都知道webpack对于loader的内部处理流程。从大体上来说是遵循流水线机制的,即挨个处理每个loader,前一个loader的结果会传递给下一个loader。 loader有一些主要的特性: 同步 ... 阅读全文 »
webpack打包产物代码分析 发表于 2019-01-02 | 前一阵子主要研究了webpack的源码实现,这篇文章用于记录webpack打包后代码的阅读,更多的是在代码中添加自己的注释理解,使用的webpack版本是4.5.0。 主流程先看一下最简单的代码在打包后的实现: 打包前代码: 1234// index.jsimport { log ... 阅读全文 »