Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery向左滚动到随机位置_Jquery_Scrolltop - Fatal编程技术网

Jquery向左滚动到随机位置

Jquery向左滚动到随机位置,jquery,scrolltop,Jquery,Scrolltop,我正在尝试使用scrollLeft来设置滚动水平div的动画 我不知道我做错了什么-底部的月份链接应该会将您带到水平滚动div中相应的div,它有时会工作,但大部分时间都会去随机的地方(特别是向后) 演示比解释容易,所以请在下面找到一个js提琴。下面是js 和以往一样,我们非常感谢您的建议-如果您需要更多信息,请告诉我 问题的一部分是,当你得到这个值时,你得到的是相对于父对象的值。最初单击“June”时,左侧位置为800,但滚动完成后,六月的左侧位置现在为0。当你滚动到零,你在开始结束 我提出

我正在尝试使用scrollLeft来设置滚动水平div的动画

我不知道我做错了什么-底部的月份链接应该会将您带到水平滚动div中相应的div,它有时会工作,但大部分时间都会去随机的地方(特别是向后)

演示比解释容易,所以请在下面找到一个js提琴。下面是js

和以往一样,我们非常感谢您的建议-如果您需要更多信息,请告诉我


问题的一部分是,当你得到这个值时,你得到的是相对于父对象的值。最初单击“June”时,左侧位置为800,但滚动完成后,六月的左侧位置现在为0。当你滚动到零,你在开始结束

我提出的解决方案是在开始时将所有“左”位置保存到一个数组中。您可能还想考虑使用,这是相对于文档的位置。

以下是我的解决方案,还有一些其他问题需要解决:


这是一个很好的解决方案+1.仅供你们参考,原版和解决方案目前在Opera和IE中都存在问题,因为显示:IE的表格单元格,它们都没有动画。
    $(document).ready(function(){

 $(".timenav a.may").click(function(){

      $('.hori').animate({scrollLeft:$('#may').position().left}, 800);

  });

   $(".timenav a.june").click(function(){

      $('.hori').animate({scrollLeft:$('#june').position().left}, 800);

  });

    $(".timenav a.july").click(function(){

      $('.hori').animate({scrollLeft:$('#july').position().left}, 800);

  });

    $(".timenav a.august").click(function(){

      $('.hori').animate({scrollLeft:$('#august').position().left}, 800);

  });

});
var posLeft = [
    $('#may').position().left
    ,$('#june').position().left
    ,$('#july').position().left
    ,$('#august').position().left
];
var $hori = $('.hori');

$('.timenav a').on("click",function(e){
    $this = $(this);
    $hori.stop().animate({
        scrollLeft: posLeft[ $this.data("month") ]
    }, 800);
});