【问题标题】:jQuery UI Vertical Tabs makes page scroll "stick"jQuery UI Vertical Tabs 使页面滚动“粘住”
【发布时间】:2014-12-02 15:25:51
【问题描述】:

我目前正在使用开箱即用的 jQuery UI Vertical Tabs sn-p,它如何影响整个页面滚动存在一个奇怪的问题。每次更改选项卡,然后尝试向上或向下滚动页面主页时,它最终都会“粘”在适当的位置一段时间,然后正常工作。你可以在这里看到效果:http://investors.realcrowd.com/tab-tester

不确定问题出在哪里,甚至不知道如何诊断...是否可以添加任何 sn-p 代码来解决此问题?感谢您的帮助!

【问题讨论】:

  • 奇怪。也许是 eventPropagation?
  • 嗯,你能进一步解释一下吗?我对 jQuery 很陌生,我的开发人员对这个术语并不熟悉。非常感谢您的快速响应!
  • 我并不是一个真正的 jQuery 专家,而且我实际上认为为此想出一个解决方案并不容易。在我看来,一旦您单击选项卡,滚动事件触发器实际上就会起作用,但我不确定来源是什么以及如何解决它。只是一个旁注:您是否注意到您没有包含文件?您的页面中有错误,也许这与您的问题有任何关系? (您的页面不包括样式表,如果样式表包含任何需要应用的类,则可能是一个原因)。检查这个:prntscr.com/5cgfi4
  • 哦,我知道了,先生。你有某种动画正在进行。每当您单击选项卡元素时,文档都会滚动并将您的视图设置在视口的正中间。不知道你怎么称呼它,但我很有信心你的文件丢失了一些东西。尝试首先包含上面的 CSS。如果您想要证明,请尝试单击一个选项卡,等待 3 秒,然后滚动:它不会滑动。
  • 你有它:有一个触发器让你发誓:prntscr.com/5cgle4 只需破坏动画,你就完成了;) 尝试从第一个脚本中删除:$('html,body').animate({ scrollTop: target.offset().top }, 1000);

标签: javascript jquery jquery-ui jquery-ui-tabs jquery-tabs


【解决方案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)即可好的。

希望这会有所帮助。

【讨论】:

  • 做到了!将其设置为 1 似乎没有做任何事情,但删除整个条件修复它。非常感谢!
  • 不客气,我很高兴它在某些建议的方式中确实有效:P。
猜你喜欢
  • 2021-06-13
  • 2013-01-27
  • 2018-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多