我想在有人滚动经过特定表单后触发 React.GA 事件。我将此行添加到我的 componentDidMount
window.addEventListener('scroll', this.onScroll);
然后我有这两个功能
isVisible = (el) => {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
onScroll = () => {
let form = document.querySelector('theform');
if (form) {
if (this.isVisible(form)) {
console.log('hey');
}
}
}
这很接近,但它会生成很多日志,所以我猜它也会生成很多 GA 事件。是否可以修改我的 isVisible 函数以检查它是否部分可见(假设超过一半的表单已滚动过去)?
我用特定的边界值尝试了它,但当然这不是解决这个问题的最佳方法。
感谢您提供任何有用的建议!