簡體   English   中英

手動觸發DOM元素的滾動事件?

[英]Manually trigger a scroll event of DOM element?

我有兩個獨立的web元素,如果我滾動一個元素的內容,我也希望第二個元素同時滾動。 這是一個例子: https//stackedit.io

我做了以下代碼,但它不起作用:

element.find('.fullscreen-mk-content-textarea').on('scroll', function(e){
    // first element will trigger this event, then manully trigger the 
    // the scroll of the 2nd element. It's my plan. 
    console.log(e); // works
    element.find('.right-side').trigger('scroll'); // doesn't work...
});

我該怎么辦?

香草Javascript

var el = document.querySelector(".right-side");

el.dispatchEvent(new Event('scroll'));

您可以設置另一個的scrollTop值以匹配。 這將導致它滾動所需的數量。 這就是你滾動的東西。 嘗試觸發滾動事件不會導致它滾動。 滾動事件是某些滾動動作的指示符,而不是導致滾動動作的內容。

如果使用jQuery,可以使用.scrollTop()來檢索滾動的當前值,或使用.scrollTop(val)來設置滾動量。

試試這個jsFiddle

$('.e1').scroll(function(e){
    $('.e2').scrollTop(parseInt($('.e1').scrollTop()));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM