我目前正在使用开箱即用的jQuery UI Vertical Tabs代码段,并且它如何影响整个页面滚动存在一个奇怪的问题。每次更改选项卡,然后尝试向上或向下滚动页面主页,它最终会“#34;坚持"在适当的位置,然后正常工作。您可以在此处查看效果:http://investors.realcrowd.com/tab-tester
不确定问题是什么或者甚至诊断它是什么...我可以添加任何代码片段来解决这个问题吗?谢谢你的帮助!
答案 0 :(得分:1)
不是100%确定这是否是解决方案但是在这一点上,我非常有信心。
检查源代码,在代码的最开始就有一个触发器。更具体地说,它位于:
<script>
$('body').bind('touchmove', function(e){
e.preventDefault();
});
</script>
<script>
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
</script>
包括jQuery之后。
在这段代码中,你实际上有一个处理程序,只要调用非空锚就会触发。 经过几次检查后,此事件将调用此:
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
将执行1秒动画(1000毫秒),将视图滚动到所需目标的顶部偏移。在这一秒中,如果你要滚动,它将迫使你坚持在目标的偏移量的顶部,因此它会强迫你不要在别处滚动,而是在他想要的地方滚动。
要解决此问题,您可以将1000设置为1,或者只删除动画,即使实际滚动到目标的偏移量也是个好主意,因此只需将1000替换为1(或10或甚至100)都没问题。
希望这有帮助。