2012-10-21 50 views
1

我试图滚动到一个keydown事件2个不同的元素,在第一次按第1个要素,在第二次按下第二个元素,每2台印刷机后重复事件绑定的keydown事件(或命中)。我创建了一个JSFiddle演示,链接如下。的JavaScript滚动到元素在jQuery的

FIDDLE

正如你所看到的,它不会滚动到第二按下底部构件(或打)。我唯一能想到的是除了“.offset()。top”以外的其他事情。但是,如果你的一些JS大师看我的代码,你可能会看到错误或可能是另一种解决方案,以达到预期的效果。提前致谢!

.offset().top ??? 

主要BUG解决了,但新的bug透露。是有办法的命中变量重置为零,如果用户点击向上箭头?

NO MORE BUGS!欢迎使用这个脚本所有你想!

回答

0

见的offset

定义获取所述第一元件的当前坐标集合中匹配的元素,相对于文档的。

这里的问题是,当你的动画#wrap元素,它的偏移量改变, 最简单的方法是事先得到它的位置,看到my edited JSfiddle。添加以下两行代码,并根据spot1/spot2执行动画。开关箱运行良好。

var spot1 = $("#scrollToHere2").position().top; 
var spot2 = $("#scrollToHere").position().top; 
+0

的最佳解决方案,那奇妙制定。我会投票,如果我的代表升起。谁还会读这篇文章,随时为我的未来网站使用我的(和fin)代码,然后投票,这非常有用。 – Jim22150

+0

翅,有没有什么办法给变量重置为零,如果按向上键,如果用户点击UP只有点击向下箭头一次,而不是单击两次后箭头? – Jim22150

+0

你的意思是[this](http://jsfiddle.net/finfin/XXuZG/1/)? – fin