我最近问了一个问题,在处理了它之后... 5个小时(不幸的是严重)我能够顺利滚动到锚点。这是我投入的js。
$(document).ready(function(e) {
$(".scroll").click(function(event){
event.preventDefault();
//calculate destination place
var dest=0;
if($(this.hash).offset().top > $(document).height()-$(window).height()){
dest=$(document).height()-$(window).height();
}else{
dest=$(this.hash).offset().top;
}
//go to destination
$('html,body').animate({scrollTop:dest}, 1000,'swing');
});
});
我目前正在使用ID作为锚点,但如果你愿意,我也可以切换到NAME。
这就是我想要的:这只适用于同一页面。我希望它可以跨多个页面工作。
以下是我的示例:This page,应加载this page,然后滚动到锚点。
但相反,它跳了起来。我应该在这段代码中添加什么?作为一个图形和html / css唯一的设计师,javascript对我来说是火箭科学。如果你保持愚蠢,我会很感激。
答案 0 :(得分:1)
坚持使用JS,并传递一个哈希属性:
<a href="http://something.com/some.php#start"> Go to page 2 ( Start ) </a>
<a href="http://something.com/some.php#goats"> Go to page 2 ( Goats ) </a>
并在第2页上使用简单的JS进行检查
<script>
$(document).one("ready",function(){
if( window.location.hash.length > 0 ){
$("body, html").animate({scrollTop:$(window.location.hash).position().top},1000);
}
});
</script>
该脚本将导致ID为“start”的对象(或具有ID“goats”) 您可以在第2页上定义目标,为您的部门添加ID:
<div id="start"> Some content </div>
<div id="goats"> Goat content </div>