当前位置 : 主页 > 网页制作 > JQuery >

jQuery – 如何在单击时将锚点滚动到页面顶部?

来源:互联网 收集:自由互联 发布时间:2021-06-15
我有div元素中的链接列表,我使用dropcontent.js在单击链接时将内容加载到另一个div中.我现在想添加一些代码,将点击的链接滚动到浏览器窗口的顶部. 对于列表中的每个项目,HTML都是这样的
我有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

事实证明这是造成问题的其他因素 – 我现在已经开始工作了!

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

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