我相信你可以通过scrollLeft 做到这一点
$("#leftArrow").click(function(){
$("#divId").scrollLeft(Math.max(0, $("#divId").scrollLeft() - 100));
});
$("#rightArrow").click(function(){
$("#divId").scrollLeft(Math.min(1000, $("#divId").scrollLeft() + 100));
});
使用适当的限制而不是 0 和 1000,以及您的图像宽度而不是 100。
但是,查看您的示例页面,您遇到了另一个问题。
你认为你的图片是这样放置的:
[可视区域] [溢出....]
.==========================._ ___ ___ ___ ___
X | | | | | | X | | | | . . . | |
X___|___|___|___|___|___|_X_|___|___|___| |___|
"==========================
并且水平滚动可见区域将使其他图像变得可见。
事实上,图像是这样放置的:
[可视区域]
.===========================。
X | | | | | | X
X___|___|___|___|___|___| X
"==========================
|___|___|___|___|___|___|
| | | | | | |
|___|___|___|___|___|___| [溢出...]
...
___ ___ ___ ___ ___ ___
| | | | | | |
|___|___|___|___|___|___|
...所以水平滚动没有好处。 (图像实际上是垂直溢出的!事实上,如果您使用相同的代码但使用scrollTop 而不是scrollLeft,您可以看到这一点)
图像是环绕的,因为它们位于具有明确宽度的 div 内。
您可以通过在第一个 div(带有 overflow:none 的那个)中放置第二个 div 来解决此问题,该 div 的宽度足以容纳您的所有图像。
按照你的页面,执行
javascript:
$("#images")
.css("overflow", "hidden")
.wrapInner("<div style='width:1000px'>");
会成功的。然后如果你执行
javascript:
$("#images").scrollLeft(10);
你会看到水平滚动确实有效。