【问题标题】:jQuery - How to scroll an anchor to the top of the page when clicked?jQuery - 单击时如何将锚点滚动到页面顶部?
【发布时间】:2013-10-14 10:43:06
【问题描述】:

我在div 元素中有一个链接列表,当单击链接时,我正在使用 dropcontent.js 将内容加载到另一个 div 中。我现在想添加一些代码,将点击的链接滚动到浏览器窗口的顶部。

对于列表中的每个项目,HTML 都是这样的:

<div class="work">
    <h3><a class="scroll" href="project2.html">Project 2</a></h3>
    <div class="projectIntro">
        <p>This is some intro text for project 2</p>
    </div>
    <div class="pictures"></div>
</div>

我找到了在单击链接时滚动到 ID 的教程(通过将 href 设置为要滚动到的 div 的 ID - 不幸的是我不能这样做,因为我的 href 实际上是一个单独的 html 页面甚至尽管它使用 dropcontent 将其加载到当前页面中。

我还找到了一个在页面加载时滚动到特定 ID 的教程,但没有一个只是简单地说,当单击给定类的锚点时,将其滚动到浏览器窗口的顶部。

有人可以帮我解决这个问题吗?谢谢。

更新:

我已经使用以下代码使滚动工作:

$('.work a').click(function() {
         $('html,body').animate({scrollTop: $(this).offset().top}, 500);
         }); 

但是,我的 dropcontent.js 不再工作...我想是因为我有 2 个功能在同一次点击时发生...我希望先加载内容,然后滚动。

这是我的 dropcontent.js

$('.work a').click(function(event) {
event.preventDefault();

var parent = $(this).parents(".work");
var content_holder = parent.children(".pictures");

if (parent.hasClass("selected_work")) {
  close_other();
  return;
}

close_other();

parent.addClass("selected_work");
content_holder.load(this + " #content .work");

$('.selected_work img').attr("src", "images/arrow_close.gif");

});


function close_other() {

var selected_work = $('.selected_work');

selected_work.children('.pictures').empty();    
$('.selected_work img').attr("src", "images/arrow_open.gif");
selected_work.removeClass("selected_work")
}

});

所以现在我只需要集成这 2 位代码以使它们一起工作......到目前为止,我没有运气这样做 - 如果我添加滚动(动画)功能,加载功能将停止工作。 ..

更新 2

原来是其他原因导致了问题 - 我现在可以正常工作了!

【问题讨论】:

  • 你能不能把动画调用移到返回;在 close_other 之后 - 不会有同样的效果吗?
  • @Spirit,如果您找到了自己的答案。请在下面自己发布答案并接受它。这将关闭问题并使其可供其他人在未来找到。
  • 当然 - 我之前确实尝试过,但系统不会让我这么快回答我自己的问题...我现在已经发布了答案,但系统告诉我必须等待 2 天才能接受它...

标签: jquery scroll


【解决方案1】:

以下是您将链接滚动到顶部的方法:

$('.work a').click(function() {
     $('html,body').animate({scrollTop: $(this).offset().top}, 500);
}); 

【讨论】:

    【解决方案2】:

    下面链接的这个已回答的问题与所有希望能够回答的人密切相关并且是很好的信息

    • 滚动页面到某个元素,div id

    • 通过单击 从那个元素锚定

    • 通过单击 包含所有锚链接的实际 div id; “点击捕捉器 div”

    Scroll element to top of page by clicking anchor inside element or anywhere inside containing div id

    【讨论】:

      【解决方案3】:

      不是对您问题的直接回答,而是您可能想要使用的很好的参考。

      http://demos.flesler.com/jquery/scrollTo/

      jQuery scrollTo 插件可让您滚动到页面中的任何锚点&lt;a&gt;。如果您只是在窗口顶部放置一个锚点,则可以使用 scrollTo 直接通过动画到达那里。

      【讨论】:

      • 谢谢 - 我确实看过这个,但我不确定这是我想要的,因为我不想滚动到不同的锚点...我想要我刚刚点击的锚点滚动- 我现在已经想出了如何做到这一点......只是有一个问题让两个代码一起工作而没有一个取消另一个......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2016-09-13
      相关资源
      最近更新 更多