我正在为涉及水平滚动的项目实现jScrollPane。客户希望水平滚动以增量进行,这样用户基本上可以从幻灯片跳转到幻灯片。
我可以使用jScrollPane的API和“scrollByX”在箭头上执行此操作。然而,问题在于滚动条,用户可以单击并来回拖动并滚动内容。
有没有办法将“scrollByX”(或者说就是“scrollByY”)分配给jspDrag,这样当用户拖动滚动条时,滚动不是连续的,而是以递增的方式?
提前致谢。
答案 0 :(得分:0)
您可以在任何jsp-scroll-x事件之后监听mouseup事件,并且您可以找出最近项目的位置,并使用jScrollPane API滚动到该元素的位置。我已经更新了您找到的示例,以便它以这种方式工作(正如您之前注意到它只向前滚动):
http://www.jsfiddle.net/dzvSC/14/
(显然这段代码是垂直工作的,但你可以将y改为x's,将top改为left's等)
var api = $('.scroll-pane').jScrollPane().bind(
'jsp-scroll-y',
function(event, scrollPositionY, isAtBottom, isAtTop)
{
$(document)
.unbind('mouseup.jsp-demo')
.bind(
'mouseup.jsp-demo',
function()
{
$(document).unbind('mouseup.jsp-demo');
var currentY = api.getContentPositionY(),
lastY = 0;
api.getContentPane().find('>*').each(
function()
{
var thisY = $(this).position().top,
destY;
if (thisY > currentY) {
destY = currentY - lastY > thisY - currentY ? thisY : lastY;
api.scrollToY(destY, true);
return false;
}
lastY = thisY;
}
);
}
);
}
).data('jsp');
原始回答:
可以做你想做的事,我在某处写了一个例子。您可以在jScrollPane mailing list上跟踪它 - 在示例中它是一个垂直滚动窗格,当您释放滚动条时它会动画到最近的图像。实际的例子是在jsfiddle.net上。
我现在急着找不到这个例子,但这可能对你有所帮助。如果你在我下一台电脑前没找到它,我会尝试追踪它并更新这个答案...