首页 > web前端 > css教程 > 为什么在固定位置列表中使用 ScrollIntoView(true) 时整个页面会移动?

为什么在固定位置列表中使用 ScrollIntoView(true) 时整个页面会移动?

Barbara Streisand
发布: 2024-11-16 07:52:02
原创
632 人浏览过

Why Does the Entire Page Move When Using ScrollIntoView(true) in a Fixed-Position List?

ScrollIntoView() 和意外的页面移动

问题:

当使用 ScrollIntoView(true) 将项目滚动到在固定位置列表中查看,为什么整个页面会移动稍微?

上下文:

通过 AJAX 在移动设备上的 Safari 中加载固定位置列表 (#listOfDivs)。使用 ScrollIntoView(false) 进行向下滚动可以按预期工作,但是使用 ScrollIntoView(true) 进行向上滚动会导致整个页面滚动

结构:

#listOfDivs {
  position: fixed;
  top: 100px;
  width: 300px;
  height: 300px;
  overflow-y: scroll;
}
登录后复制
<div>
登录后复制

答案:

ScrollIntoView的默认行为(true)是将元素从视口顶部滚动到视图中。要防止整个页面移动,请将行为选项指定为 smooth,将块选项指定为最接近,并将内联选项指定为开始:

element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' })
登录后复制

文档:

有关 ScrollIntoView 方法的详细信息,请参阅 Mozilla 开发者网络 (MDN) 文档: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

以上是为什么在固定位置列表中使用 ScrollIntoView(true) 时整个页面会移动?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板