应用背景
应BI要求,对于推荐商品的上报,需要做停留曝光,也就是当推荐商品出现在视窗中时,才可以进行数据上报,即与图片懒加载的加载时机相同。
此插件可适用于:停留曝光、图片懒加载、翻页加载等。
实现要点
停留曝光的实现关键点在于,如何判断商品出现在视窗中。我们可以通过判断滚动速度,来判断页面是否停留(当用户以很慢的速度滚动浏览页面时,也应该算曝光;但是如果是快速滑过,则不算曝光)。
使用说明
配置参数
参数字段 | 参数类型 | 参数描述 | 备注 |
---|---|---|---|
selector | string | 曝光元素选择器 | |
speed | number | 页面滚动阀值,即当页面滚动速度等于此值时,则认定为元素曝光 | |
autoClear | boolean | 当所有元素都曝光过(至少一次)后,是否自动清除事件监听 |
钩子函数
参数字段 | 参数类型 | 参数描述 | 备注 |
---|---|---|---|
onExposure | 当有元素曝光时 | 曝光元素数组 | 元素重复曝光,会重复执行 |
onFirstExposure | 当有元素首次曝光时 | 曝光元素数组 | 元素首次曝光后,不再执行此钩子函数 |
onAllExposured | 当所有元素都曝光过(至少一次)时 | 曝光元素数组 |
DEMO
|
用法举例
停留曝光
通过此插件,就可以很轻松的实现之前描述的停留曝光的需求了,代码如下:
|
图片懒加载
因为此插件工作机制类似图片懒加载功能,因此也可以用来实现图片懒加载,如下:
|
翻页加载
如果保证页面从顶部开始加载,可以将speed设置为一个很大的值,那么当所有的元素都曝光过的时候,就可以粗略的断定页面滚动到底部了,因此可以在 onAllExposured 回调中进行翻页加载,大致如下:
|
插件源码
最后,贴上插件代码:
|