window.IntersectionObserver) { await import('intersection-observer'); } const el = document.getElementById
观测元素的几种情况: A:进入窗口,500ms后退出窗口,需要上报 B:进入窗口,没有退出窗口,超过了500ms,需要上报 C:进入窗口,不到500ms退出窗口,不需要上报 代码实现 require('intersection-observer
Github上提供了相关的Polyfill方式:IntersectionObserver polyfill 参考地址: https://www.w3.org/TR/intersection-observer
最终版 考虑兼容性: // 使用w3c出的polyfill require('intersection-observer'); 主要逻辑如下: /** * DOM曝光 * @param {object
dependencies": { "@types/js-cookie": "^2.x.x", "ahooks-v3-count": "^1.0.0", "dayjs": "^1.9.1", "intersection-observer
// src/directives/track/exposure.js import "intersection-observer" import { sendUBT } from "../..
get-wxml-node-info', 'packageAPI/pages/page/page-scroll/page-scroll', 'packageAPI/pages/page/intersection-observer /intersection-observer', 'packageAPI/pages/device/clipboard-data/clipboard-data', 'packageAPI
require('intersection-observer'); export default Vue => { ...
require('intersection-observer'); export default Vue => { ...
子代理会自动: // 特性检测 if ('IntersectionObserver'inwindow) { // 使用原生API } else { // 加载polyfill import('intersection-observer
://github.com/w3c/IntersectionObserver) IntersectionObserver polyfill(https://www.npmjs.com/package/intersection-observer
https://css-tricks.com/animating-with-clip-path/ [10] 交集区域(intersectionRect)的边界: https://www.w3.org/TR/intersection-observer