我试图在右侧滚动div标签,但这不起作用。但滚动左侧功能和向右滚动动画是完美的。但我想在没有动画的情况下向右滚动我尝试了类似这样的代码
$().ready(function(){
$("#container").scrollLeft(500); //This works
return hus;
});
function hus(){
$("#container").scrollLeft(-200); //This is not work
}
但我想滚动右侧没有动画我该怎么办?
答案 0 :(得分:2)
我不确定你的意思"向右滚动"。
$("#container").scrollLeft(500)
将div滚动到500px的x位置(这可以)
$("#container").scrollLeft(-200)
将div滚动到-200px的x位置,这不是有效位置,因为最小值是0px,这是最左边的位置,你不能指望它会"漂浮"像圆圈一样在右侧
scrollLeft: leftPos - 800
没有"向右滚动"就像你的东西一样,它也将div元素向左滚动
所以,作为我的客人,有2个符合您问题的可能案例 让我们从:
开始var leftPos = $('#container').scrollLeft();
我们认为:
leftPos = 1000
,这是div的当前x位置scrollWidth = 10000
,从$('#container')[0].scrollWidth
width = 500
,从$('#container').width()
如果您想从当前位置(即1200
)向右移动200px,您可以使用:
$("#container").scrollLeft(leftPos + 200);
如果你想要移动到#200; 200px以外的正确位置"从右侧开始,即10000-500-200
,您可以使用:
$("#container").scrollLeft(scrollWidth - width - 200);
希望这可以解决您的问题。 (对不起,我的语法不太好)
答案 1 :(得分:0)
您可以将持续时间设置为0或1 ms,这样可以解决问题:
var leftPos = $('#container').scrollLeft();
$("#container").animate({
scrollLeft: leftPos - 800
}, 0);
答案 2 :(得分:0)
默认情况下,元素设置在左侧。从这个意义上讲,你无法在右侧滚动元素"" (a.k.a.左边)一开始。
在你的情况下:
1. $("#container").scrollLeft(500); //This works
这样可行,因为您只需将元素移动到右侧即可获得500px。
2. $("#container").scrollLeft(-200); //This is not work
这不起作用,因为您已经在最左侧,您无法从外框中滚动元素。
3. var leftPos = $('#container').scrollLeft();
$("#container").animate({
scrollLeft: leftPos - 800
}, 500);
});
我不确定你是什么意思"完美地工作"在这种情况下,由于缺乏上下文。
如果您想要的是将元素移动到左侧"没有动画,你可以设置$('#container').scrollLeft('200');
(因为你已经将元素设置为在最开始时向右滚动500px。)
您可以查看jsFiddle示例。如果要关闭动画效果,可以将持续时间设置为0。