亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同步(非被動)滾動事件

同步(非被動)滾動事件

寶慕林4294392 2023-02-17 17:39:57
瀏覽器使scroll事件異步(即{passive: true})一段時間了。對于我的用例,同步提供了更好的用戶體驗。有什么方法可以重新獲得同步滾動事件,這樣我就可以在(scrollLeft, scrollTop, clientWidth, clientHeight)矩形發生變化但在滾動呈現之前進行 DOM 操作?作為一種奇怪的解決方法,在 Firefox 中打開和關閉 Dev Tools 會使事件同步,這就是我注意到同步提供了更好的用戶體驗的方式。同時設置apz.disable_for_scroll_linked_effects為 true 使事件同步。同樣在 Safari(桌面)中,它們似乎總是同步的。我嘗試過的事情:div.addEventListener('scroll', update, {passive: false})但passive: false被忽略了。Object.defineProperty(Object.getPrototypeOf(div), 'scrollTop', {get: ..., set: ...})但是沒有調用二傳手。div.addEventListener('wheel', update, {passive: false})但我不確定是否可以映射 from deltaY-> updated scrollTop,而且它不解決通過滾動條滾動的問題。
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

我不相信這是可能的,你將不得不進入造假的境界。這里有一篇有趣的文章,講述了它是如何(或曾經是?)在代碼鏡像中完成的

基本思想是使滾動條在正確高度的某些元素上呈現,并響應滾動條上的事件以更新用戶實際看到的內容。


查看完整回答
反對 回復 2023-02-17
  • 1 回答
  • 0 關注
  • 83 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號