我正在创建一个缩略图滑块并想使用快照滚动和滚动到。当我选择一个缩略图时,我希望另一个可滚动容器滚动到该缩略图链接到的 id 的图像。我希望滚动可见,而不仅仅是图像的“跳转”。这一切都适用于 Firefox、Chrome 等。
但是,我知道在 14.7 之前,scrollTo 在 Safari 中的支持有限,但即使在最新版本中,我也无法重新创建平滑滚动行为。 https://caniuse.com/?search=scrollto
我创建了一个 CodePen 来演示我的问题 https://codepen.io/Bregt/pen/jOwJGMJ
我将以下 CSS 添加到我的水平可滚动容器中。
.h {
display: flex;
overflow-x: auto;
overflow-y: hidden;
overscroll-behavior-x: contain;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
width: 200px;
}
.h > * {
width: 100%;
flex-shrink: 0;
scroll-snap-align: start;
scroll-snap-stop: always;
}
在我的 JavaScript 中,我获取具有特定 ID 的元素,然后在容器上使用 scrollTo
document.querySelector(".js-h-slide").addEventListener("click", (e) => {
let element = document.getElementById("h-image-5");
document.querySelector(".js-h-slides").scrollTo({
left: element.offsetLeft,
behavior: "smooth"
})
});
我忘记了什么?