gpt4 book ai didi

css - 设置为 "none"后重新设置 scroll-snap-type 无效

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:46 24 4
gpt4 key购买 nike

Chrome 的最新版本 69 现在支持 scroll-snap-type,但显然不是很好。

原始 CSS:

    .carousel {
scroll-snap-type: x mandatory;
}

使用 jQuery 动画转换:

$(".carousel").css("scroll-snap-type", "none");
$(".carousel").animate({
scrollLeft : 1000,
}, {
complete : function() {
// fail:
$(".carousel").css("scroll-snap-type", "x mandatory");
}
});

如果我们不这样做,那么动画会捕捉到轮播中的每个元素,使其看起来非常不稳定,不流畅。因此,我们首先禁用 scroll-snap-type CSS。这很好用。唯一的麻烦是,Chrome 忽略了将此属性重新设置为其原始值的指令!

有人告诉我这在 Safari 中有效。

欢迎提出任何想法、解决方案和解决方法!

最佳答案

嗯,Chrome 有很多问题,但至少我们有一个解决方法:

新的 CSS:

        .item-carousel {
scroll-snap-type: x mandatory;
}

.snap {
scroll-snap-align: start;
scroll-snap-stop: always;
}

新的 HTML:

<div class="item-carousel">
<div class="item snap" >
...
</div>
</div>

和新的 JS:

$(".item").removeClass("snap");
$(".item-carousel").animate({
scrollLeft : 1000,
}, {
complete : function() {
$(".item").addClass("snap");
},
});

新的想法是,不是在容器上操作 scroll-snap-type 属性,而是在包含的元素上添加和删除“snap”类。不知何故,这行得通。

关于css - 设置为 "none"后重新设置 scroll-snap-type 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com