防止scrollIntoView()将容器滚动到页面顶部
P粉690200856
P粉690200856 2024-03-26 20:25:28
[CSS3讨论组]

我正在尝试构建一个简单的“主要是 css”图像轮播,它使用滚动捕捉,但也有导航按钮来控制当前查看的幻灯片。我找到的唯一解决方案是在目标元素上使用scrollIntoView(),它可以满足我的要求,但它也总是将目标元素滚动到页面顶部。我希望目标轮播幻灯片和容器保持在原来的位置,并且我只希望幻灯片水平滚动到视图中。我正在看 Adam Argyle 的一个示例,他就是这样做的,并且容器保持在原来的位置,我不知道他的演示有什么不同。

我做了一个codepen来演示。

https://codepen.io/krjo-the-decoder/pen/dyjPrLy

单击底部的编号按钮将正确滚动到右侧幻灯片,同时也会将整个容器在页面上滚动。

我尝试在scrollIntoView()之前和之后使用scrollTo()将容器的y轴滚动设置为其现有位置,但这没有效果。


Scroll-snap Carousel

P粉690200856
P粉690200856

全部回复(1)
P粉976737101

尝试将 block: 'nearest' 添加到你的scrollIntoView选项中,如下所示:

document.querySelectorAll('button').forEach(button => {
  button.addEventListener('click', event => {
    console.log('event',event);
    slides[event.target.dataset.index].scrollIntoView({
      behavior: 'smooth',
      inline:   'center',
      block:    'nearest',
    });
  });
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号