我有一个包含链接的列表,这些链接在 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不再起作用...我认为是因为我在同一次点击中有两个函数发生...我希望内容先加载,然后再滚动。
这是我的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
结果发现是其他原因导致了问题——现在我已经解决了!