水平滚动到锚点并阻止y轴

时间:2011-07-25 12:21:51

标签: javascript jquery scroll block

我有一个位置:固定箭头导航,可以通过jquery和水平放置的锚点向左或向右滚动几列:

        $('html,body').animate({
        scrollLeft: $(target).offset().left
        }, 800 , function (){window.location.hash = target;});
到目前为止,

完美无缺。

列很窄,它们可能变得很长,迫使用户向下滚动。 一旦你向下滚动并想要跳转到另一列,js就会继续滑动动画,然后跳到下一列的顶部。

有没有办法挡住机芯的y轴? 或者告诉脚本继续进行水平移动?

提前致谢!

1 个答案:

答案 0 :(得分:1)

问题是在完成动画制作后,您将哈希设置为目标。 这将强制浏览器跳转到具有哈希id的元素。实际上你不想要这种行为,因为你只想要y轴。

也许在你的元素的末尾添加一个字符串,这样你仍然可以定位它,但不是你设置的哈希标记。

 scrollLeft: $(target + "_real").offset().left
        }, 800 , function (){window.location.hash = target;});