【问题标题】:Scroll to div with class on a button click [duplicate]在按钮上滚动到带有类的div单击[重复]
【发布时间】:2015-10-22 16:33:29
【问题描述】:

我有一个从循环创建的按钮列表。单击这些按钮时,将在一个块的下方显示不同的数据(子页面内容)。每个按钮显示来自不同子页面的数据。

所以按钮有一个类 .service-tab 内容块有一个 .services-content 类

我试过jQuery如下:

$('.service-tab').click(function() {
    $('html,body').animate({
        scrollTop: $(".services-content").offset().top},
'slow');

这些似乎适用于我首先单击的任何按钮。然后,当我向上滚动页面以单击另一个按钮而不是再次返回时,以便 .services-content 再次与页面顶部对齐,它会向下,并且您单击任何按钮的次数越多,页面再次向下。 (随机取决于页面的位置,如果您单击按钮,它将再次按预期工作)。

我假设由于 JS 启动它记录页面位置并根据此移动?

【问题讨论】:

  • 所以你有多个元素与类services-content?它如何知道根据这段代码滚动到哪一个?
  • @APAD1 - 好点。每个元素都是隐藏的,这将是它遍布整个地方的原因。我只是针对 Id 而不是现在已经解决了问题。快下午 6 点了。我觉得我累了。谢谢你的帮助

标签: javascript jquery offset scrolltop


【解决方案1】:

做老派,使用锚。你的按钮都是<a href="#someElementId">,你的目标应该使用id而不是(或除了)一个类。不需要 jQuery 或 JavaScript。

【讨论】:

  • 我需要它来确保 div 与顶部对齐。锚点并不总是允许这个功能。
  • 锚不与顶部对齐的唯一原因是它下面没有足够的内容来允许页面滚动那么远。任何 JavaScript 解决方案都会遇到同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 2019-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多