jquery scrollTo在IE中没有负面的工作

时间:2015-05-28 22:03:29

标签: jquery scrollto

我正在为公司内部网建立一个小型演示网站。 它基本上是一些水平布局的屏幕或面板,带有导航按钮,可以将用户移动到屏幕上......

问题是网站是希伯来语,需要向左滚动。

我一直在使用scrollTo脚本在屏幕之间平滑滚动,并在firefox和chrome中进行测试,并且工作正常。

然而,

Internet Explorer根本不起作用...当调用scrollTo移动到负位置的对象时,它会跳转到0位置。

继承人http://jsfiddle.net/dogstar10/s8cbdy8x/1/

$('.panel').click(function() {
    vartarget = "#"+$(this).data("target")
    $('body').scrollTo($(vartarget), 1000);
});

body{direction:rtl;}
.panel{position:absolute; z-index:3; width:250px; height:250px; background:green; top:50px; }
#panel1{left:0; }
#panel2{ left:-400px;}
#panel3{ left:-800px;}
#panel4{ left:-1200px;}

<div class="panel" data-target="panel2" id="panel1"></div>
<div class="panel" data-target="panel3"  id="panel2"></div>
<div class="panel" data-target="panel4"  id="panel3"></div>
<div class="panel" data-target="panel1"  id="panel4"></div>

单击FF或chrome中的方块,屏幕平滑地滚动到下一个方块...在IE中似乎没有任何反应,但如果您手动滚动然后单击一个方块,它将跳转到第一个方块。

有人有任何建议吗?

2 个答案:

答案 0 :(得分:1)

jquery.scrollTo有一个名为limit的设置,默认为true并强制执行边界。 尝试添加可能解决它的limit:false。如果结束位置导致负数,则可能使插件无法将其变为0。

Here是文档。

更新:尝试在jsfiddle,没有解决它:( 我不确定你是否可以解决这个问题,我修改了演示版以使用window.scrollTo()这是一种原生方法,超级低级但仍然无法正常工作。

$('.panel').click(function() {
    var target = "#"+$(this).data("target");
    var pos = $(target).offset().left;
    window.scrollTo(pos, 0);
});

此致

答案 1 :(得分:0)

我在Mac上,所以这里没有IE。但是,我注意到您正在将x对象本身作为scrollTo函数的参数:

vartarget = "#"+$(this).data("target");
$('body').scrollTo($(vartarget), 1000);

很高兴知道chrome,safari,firefox等都接受了,但该参数应该是一个数字而不是一个对象,所以我会尝试这样做:

$('body').scrollTo($(vartarget).css('left'), 1000);

那样你就发了一个号码。你甚至应该剥掉px以防万一。