【问题标题】:Jquery animate scrolling not working properlyJquery动画滚动无法正常工作
【发布时间】:2011-06-07 12:52:23
【问题描述】:

我有一个 div,里面有一个表格,单元格中有几个内容 div。这个 div 有一个垂直滚动条,我想通过 jquery 代码移动它。我有一些动画代码在单击锚链接后会移动滚动条。然而,滚动条的移动并不一致,很少会进入我想要的 div。此外,如果我多次单击链接,滚动条将移动到不同的位置,因此行为也不一致。请注意,所有 div 都在我的表中的行中“堆叠”。我在下面包含了 javascript 的代码。

$('#groupScroller').animate({ scrollTop: $(selector).offset().top }, 'slow');

【问题讨论】:

  • 您可以发布您的 doctype 标签以供参考吗?
  • 我只是尝试使用位置而不是偏移量,但这也没有奏效。但是我确实设法获得了一些调试信息。单击按钮两次后,我注意到我试图滚动到重置为 0 的 div 的顶部坐标。我想我将不得不将坐标值硬编码到这些 div 中。除非有人有其他想法。

标签: jquery


【解决方案1】:

在您的 html 代码的第一行检查您的 doctype 标签以获取 html 版本,我认为只有版本 5 或 xhtml 支持 scrollTop。

【讨论】:

  • 我最终改用了硬编码的最高值。痛苦,但它有效。
【解决方案2】:

演示已被删除,但代码仍然可用。

$('.scrollPage').click(function() {
   var elementClicked = $(this).attr("href");
   var destination = $(elementClicked).offset().top;
   $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination-20}, 500 );
   return false;
});

这不起作用的主要原因是如果您没有设法获得目标元素的位置 - 因此检查 var destination 以查看您返回的值...

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多