0

我正在研究视差滚动器,需要一些关于 jquery 动画的帮助。

if($(window).scrollTop() >= 180){
    $("#wasBorn").animate({"top": "+=20px"}, "fast");       }

当页面滚动超过 180 时,div 正在移动,我该如何在特定位置停止它让我们说top:350px

4

1 回答 1

0
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'
    );
  }
}
于 2013-03-04T00:20:29.890 回答