在我的代码中,我将一个整数值赋给myHTMLScrollBarEl.scrollTop
属性,并期望触发滚动事件。但是当值等于现有值时,没有任何事情发生。
我怎样才能每次都强制滚动事件?
答案 0 :(得分:1)
要在代码后使用$(window).scroll();
来触发滚动事件。使用代码设置滚动位置不会触发滚动事件本身。
使用纯Javascript(reference)触发滚动事件:
function triggerEvent(el, type){
if ('createEvent' in document) {
// modern browsers, IE9+
var e = document.createEvent('HTMLEvents');
e.initEvent(type, false, true);
el.dispatchEvent(e);
} else {
// IE 8
var e = document.createEventObject();
e.eventType = type;
el.fireEvent('on'+e.eventType, e);
}
}
//An finally fire it
triggerEvent(window, 'scroll');
答案 1 :(得分:0)
已弃用other answer中所述的document.createEvent
加event.initEvent
。如here所述。
从this page开始,现在创建和触发事件实例的首选方法是
var scrollEvent = new Event('scroll', {
bubbles: true,
cancelable: false,
composed: false,
});
myHTMLScrollBarEl.dispatchEvent(scrollEvent)