Buggysnap-scrollingwhileDOMchanges
创始人
2024-12-24 16:00:56
0

问题描述:

在页面上有一个可滚动的HTML元素,并且在滚动过程中,DOM内容可能会更新。当用户快速滚动时,元素的滚动可能会不流畅,并出现卡顿现象。

原因:

这个问题在DOM更改时会发生,因为元素滚动依赖于页面布局的计算。而页面布局的计算会在DOM发生更改时进行。这样,当DOM更改时,滚动计算可能会被破坏,导致页面滚动不流畅。

为了解决这个问题,我们可以使用自定义滚动方案,而不是使用默认的滚动行为。这种自定义滚动方案可以运行在requestAnimationFrame的回调中,该回调会在主线程的下一帧中调用。这样,滚动计算将在DOM更改完成后进行,避免了页面滚动不流畅的问题。

具体实现方法可参考下面的示例代码:

// 1. 选择需要滚动的元素
const scroller = document.querySelector('.scroller');

// 2. 初始化一些变量
let startY; // 记录开始滚动时的Y坐标
let lastY; // 记录上一帧结束时的Y坐标
let scrollY = 0; // 记录真正的滚动位置

// 3. 监听触摸事件
scroller.addEventListener('touchstart', e => {
  startY = e.touches[0].pageY;
  lastY = startY;
});

scroller.addEventListener('touchmove', e => {
  const y = e.touches[0].pageY;
  const diff = y - startY;
  scrollY -= diff; // 计算滚动位置
  startY = y;
});

// 4. 在requestAnimationFrame回调中更新滚动位置
function update() {

相关内容

热门资讯

详情透视!约局吧能不能开挂!一... 详情透视!约局吧能不能开挂!一贯一直都是有辅助技巧(有挂功能)-哔哩哔哩1、该软件可以轻松地帮助玩家...
科普透视!wepoker怎么买... 科普透视!wepoker怎么买辅助,wpk透视怎么安装,指南书教程(有挂分享)-哔哩哔哩1、wepo...
普及透视!wepoker有辅助... 普及透视!wepoker有辅助器吗,we-poker有人玩吗,方案教程(有挂透视)-哔哩哔哩wepo...
开挂透视!竞技联盟透视!果然是... 开挂透视!竞技联盟透视!果然是真的有辅助工具(有挂技巧)-哔哩哔哩1、竞技联盟透视破解器简单,竞技联...
科普透视!wepoker好友助... 科普透视!wepoker好友助力码,aapoker万能辅助器,模块教程(有挂神器)-哔哩哔哩1、许多...
总结透视!哈糖大菠萝免费辅助器... 总结透视!哈糖大菠萝免费辅助器!总是是真的有辅助神器(有挂实锤)-哔哩哔哩1、超多福利:超高返利,海...
详情透视!wepoker挂,约... 详情透视!wepoker挂,约局吧如何查看是否有挂,办法教程(有挂教学)-哔哩哔哩1、约局吧如何查看...
必备透视!德州辅助工具到底怎么... 必备透视!德州辅助工具到底怎么样!总是是真的有辅助神器(有挂技巧)-哔哩哔哩1、进入游戏-大厅左侧-...
解迷透视!wpk辅助哪里买,w... 解迷透视!wpk辅助哪里买,wepoker免费脚本咨询,经验教程(真实有挂)-哔哩哔哩1、该软件可以...
解谜透视!聚星ai辅助工具激活... 解谜透视!聚星ai辅助工具激活码!真是是有辅助app(证实有挂)-哔哩哔哩该软件可以轻松地帮助玩家将...