我目前正在制作一个香草JS插件,我需要更新滚动上的值,所以我附加了一个事件侦听器到文档,以触发一个应该更新上述值的函数。
问题是,它适用于文档加载,但不适用滚动。就好像滚动事件根本不工作一样。
目前,我的JS部分看起来像这样:
var currentPosition = 0;
var updatePosition = function() {
currentPosition = document.body.scrollTop;
document.getElementById('indicator').textContent = currentPosition;
};
document.addEventListener('scroll', updatePosition());
这里有一个字符串使它更清楚:JSFIDDLE
我尝试在body和window上都附加事件侦听器,但是没有任何区别。
您使用updatePosition()
直接调用函数,这是因为您在页面开始时调用函数,因此您必须仅使用函数名称updatePosition
附加和处理程序。
document.addEventListener('scroll', updatePosition);
|-- no () here
演示:http://jsfiddle.net/IrvinDominin/dyy6z35s/
var currentPosition = 0;
var updatePosition = function() {
currentPosition = window.pageYOffset || document.documentElement.scrollTop;
document.getElementById('indicator').textContent = currentPosition;
};
document.addEventListener('scroll', updatePosition);
http://jsbin.com/seqecezecu/1/edit?js、控制台、输出