【发布时间】:2013-03-04 08:20:29
【问题描述】:
我正在研究视差滚动条,需要一些关于 jquery 动画的帮助。
if($(window).scrollTop() >= 180){
$("#wasBorn").animate({"top": "+=20px"}, "fast"); }
当页面滚动超过 180 次时,div 正在移动,我怎样才能将其停止在特定位置让我们说 top:350px
【问题讨论】:
我正在研究视差滚动条,需要一些关于 jquery 动画的帮助。
if($(window).scrollTop() >= 180){
$("#wasBorn").animate({"top": "+=20px"}, "fast"); }
当页面滚动超过 180 次时,div 正在移动,我怎样才能将其停止在特定位置让我们说 top:350px
【问题讨论】:
if( $(window).scrollTop() >= 180
&& parseInt( $('#wasBorn').css('top') )<=330 ){
$("#wasBorn").animate({"top": "+=20px"}, "fast");
}
虽然这不是一个完美的解决方案,因为它#wasBorn 元素可能会在 350px 之前停止(例如,如果它在 top 值为 320 时触发,因为在动画之后,它将是在 340 - 小于目标 350,但大于 330 的测试)。但是,由于我无法再看到您是如何触发此操作的,因此这是我目前能想到的最佳“现成”建议/解决方案。
或者……
$wasBorn = $('#wasBorn');
....
if( $(window).scrollTop() >= 180 ){
var curr = parseInt( $wasBorn.css('top') );
if( curr<350 ){
$wasBorn.animate(
{ top : Math.min( 350 , curr+20 ) } ,
'fast'
);
}
}
【讨论】: