我正在为我的页面使用smooth-div-scroll。我已经添加了一个额外的功能,使滚动条与屏幕上的选定元素居中 - 所以如果我点击任何元素,整个幻灯片就会移动到该元素的中心 - 使用 move 方法 -
但我也想使用连续无限滚动,所以第一个元素也可以在中心滑动(如果没有无限滚动,第一个元素在 0 并且不能向右移动,因为左边没有元素其中)
限制在原始代码中,但我想找到一种方法来克服它!
http://smoothdivscroll.com/publicMethods.html#move
这里要考虑的一件重要事情是,如果您在设置为无限循环的滚动条上使用 move ,它将不会执行通常在无限滚动时发生的元素交换。因此,如果您尝试在 2000 像素宽的滚动条中移动 4000 个像素,它将转到最右边的元素并停在那里。我没有听说有人遇到过任何问题,但是如果您尝试使用它并且它没有像您预期的那样移动,这可能就是原因。
我现在正在使用此代码。
//on click on any element in scroll area
function reply_click(clicked_id)
{
var offset = $('#' + clicked_id).offset();
//scroll left to center it
if (offset.left > center) {
target = offset.left - center;
$("div#content").smoothDivScroll("move", target );
} ;
//fix the element in the center of the screen (0px move)
if (offset.left == center){
target = 0;
$("div#content").smoothDivScroll("move", target );
} ;
//scroll right to center it - but it only scrolls less or equal to the width of the element - not more or arbitrary distance
if (offset.left < center) {
target = -1*center + offset.left;
$("div#content").smoothDivScroll("move", target );
};
这是测试版本: http ://www.s12.gasparhajdu.hu/
谢谢。G