"滚动"事件监听器无法正常工作

时间:2015-10-04 14:36:19

标签: javascript html events javascript-events event-handling

我目前正在开发一个vanilla JS插件,我需要在scroll上更新一个值,所以我在文档中附加了一个事件监听器来触发一个应该更新上述值的函数。

事情是,它适用于文档加载,但不适用于滚动。它好像滚动事件根本不起作用。

目前,我的JS部分看起来像这样:

var currentPosition = 0;

var updatePosition = function() {
  currentPosition = document.body.scrollTop;
  document.getElementById('indicator').textContent = currentPosition;
};

document.addEventListener('scroll', updatePosition());

这是一个让它更清晰的小提琴: JSFIDDLE

我尝试在主体和窗口上附加事件监听器,它没有任何区别。

2 个答案:

答案 0 :(得分:2)

您正在使用updatePosition()直接调用函数,这是因为您在页面启动时运行fire,您必须仅使用函数名updatePosition进行附加和处理。

代码:

document.addEventListener('scroll', updatePosition);
                                                  |-- no () here

演示:http://jsfiddle.net/IrvinDominin/dyy6z35s/

答案 1 :(得分:0)

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,console,output