【发布时间】:2012-08-09 09:23:32
【问题描述】:
我正在为我的单页网站使用平滑滚动脚本。它滚动到每个锚点。
由于设计原因,我无法让锚点直接卡到页面顶部。我不得不创建隐藏在页面上方的锚点,这样它就不会完全贴合到顶部。
这是我目前使用的脚本:
jQuery(document).ready(function($) {
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({
scrollTop: $('[name="' + this.hash.substring(1) + '"]').offset().top
}, 500);
});
});
我被告知我可以在这个脚本中进行偏移。与其到处都有这些隐藏的小锚点,我可以简单地在顶部的末尾添加一些东西以将其偏移一定数量的像素。它将是最高的 - 250
$('html,body').animate({
scrollTop:$('[name="' + this.hash.substring(1) + '"]').offset().top - 250
}, 500);
问题是这会使偏移量始终为 250px,我需要它是可变的,例如,投资组合 div 可以用 200px 的偏移量锚定,但联系人 div 只能固定 50px。
谁能帮我在脚本中编写某种选择器,让我可以根据锚定的 div 调整顶部 - [变量]?
【问题讨论】:
-
你试过你的sn-p代码了吗?当您获取锚点的偏移量并从动态值中减去 250 时,它应该可以工作。可以肯定的是,请尝试用括号括住您的计算。
-
你能在jsfiddle.net上提供一些简单的测试代码吗?不知道你的
div#contact和div#portfolio在哪里。 -
嗨,是的,我试过了。它可以工作,但它始终位于 div 上方 250 像素处,这不是我想要的。