2011-12-02 113 views
3

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

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 ,但没有一个简单地说当一个给定类的锚点被点击时,将它滚动到浏览器窗口的顶部。

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

UPDATE:

我有滚动使用下面的代码工作:

$('.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

原来这是别的东西这是造成问题的原因 - 我现在有工作!

+0

难道你们就不能只是移动的动画调用回报;在close_other之后 - 不会有相同的效果? – dash

+0

@精灵,如果你找到自己的答案。请在下面发布自己的答案并接受它。这将会结束这个问题,并在将来为其他人找到答案。 – Marnix

+0

当然 - 我确实尝试过,但系统不会让我很快回答我自己的问题...我现在已经发布了答案,但系统告诉我必须等待2天才能接受它... – Spirit

回答

5

这里是你如何滚动链接到顶端:

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

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

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

jQuery的scrollTo插件可以让你滚动到你的页面中的任何锚<a>。如果您只是在窗口顶部放置锚点,则可以使用scrollTo直接使用动画进入。

+0

谢谢 - 我确实看过这个,但我不确定这是我之后,正如我不想滚动到一个不同的锚点......我想我只是点击滚动的锚点 - 我已经想出了如何做到这一点现在...只是有一个问题,让两个代码一起工作,没有一个取消另一个... – Spirit