我正在研究视差滚动器,需要一些关于 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'
);
}
}