我正在尝试实现自定义内容滚动条。基本上,我们的想法是,在单击按钮时,容器的内容将水平滚动到容器中具有page
类的元素。每次单击都会更改具有类page
的元素,因此总会有一个要滚动到的新元素。
$('.next').on('click', function() {
$('#container').animate({
scrollLeft: $(this).find('.page').position().left
}, 1000);
});
这在第一次点击时工作正常,但第二次点击不起作用。后续点击确实有效,但不是每次都有效。
我认为因为它试图滚动到特定值,所以它可能没有得到正确的值。
是否可以平滑滚动到给定元素而不是它的位置值?
答案 0 :(得分:0)
它总是会滚动到第一个.page
元素。
尝试:
var i = 0;
$('.next').on('click', function() {
$('#container').animate({
scrollLeft: $(this).find('.page').eq(i).position().left
}, 1000);
i++;
});
基本上每次点击i
变量都会增加,我们每次点击都会搜索i'th
.page
。
答案 1 :(得分:0)
我最终得到了这样的工作:
$('.next').on('click', function() {
$('#container').animate({
scrollLeft: $(this).scrollLeft() + $(this).find('.page').position().left
}, 1000);
});