我有2个问题与滚动,我想这将是更容易问他们俩在一个职位。
我问之前,下面是与问题我jQuery代码IM。
$("a").click(function() {
if(this.hash){
$("#main").animate({
scrollTop : $("h3[name="+this.hash.substr(1)+"]").position().top - 120
},2000,"easeOutExpo");
}
});
现状:我在我的网页已事情基本上是我有一对夫妇列出了侧面菜单。 每个列表中的每一项都链接到停泊在我的主要DIV部分,还是我的“内容”部分。 当单击列表项,上面的代码运行,它滚动到其中一个锚点。
问题1:当我在列表中的一个项目点击,它向下滚动到工作就好了一个锚。 但是,当同一项目再次点击,主要区域滚动备份到div的顶部。 我的想法来解决这个问题是检查当前的“滚动”的div位置,然后不允许如果该位置没有因为第一次点击改变了代码再次运行,但我不能得到那个工作。 关于如何解决这个问题有什么建议?
问题2:同样如上所述,当我在一个列表中的项目点击向下滚动到锚。 那么,什么我希望能够到的就是点击一个不同的列表项,并把它滚动到该位置。 问题是,当我在不同的列表项单击,则滚动到一些随机的位置在主DIV,位置我还没有锚定呢。 任何人都可以解释我是如何能做到这样我就可以从锚滚动到锚?
注:所以我知道哪一个你指的是请具有您解释上述问题1或问题2响应。 谢谢
编辑:感谢ROKO的帮助下,我得到它的工作。 对于未来的观众这里是一个工作演示的小提琴: http://jsfiddle.net/TsUcc/3/以下是最终的jQuery代码是什么样子
$("a").click(function( e ) {
e.preventDefault();
if(this.hash){
var target = '#'+ this.hash.substr(1);
var destination = $(target).offset().top - 10;
$('#main').stop().animate({
scrollTop : '+=' + destination
}, 1000);
}
});