2014-01-12 109 views
0

有谁知道如何添加到这个脚本?添加jQuery .scrollTop if语句

我需要检查访问者是否在页面顶部?如果不调用回退脚本。

E.g.如果用户处于页面延迟动画的顶部,则用户在别处删除延迟(回退其他条件)。

var viewportWidth = $(window).width(), 
    stopTabletAnimation = 1024, 
    scrTop; 

$(window).on("load scroll", function() { 
    scrTop = $("html, body").scrollTop(); 
    if (!scrTop && viewportWidth > stopTabletAnimation){ 
     // DELAY ANIMATION - FORCE TOP CORRECTLY (WITH A DELAY - .9s) 
     $('.website-navigation').delay(3500).animate({top:0}, 900, function() { 
      // Confirm Above if successful! 
      console.log('ANIMATION COMPLETE: .site-head Delayed, then loaded!'); 
     }); 

    } else { 
     // Do Not Animate 
     $('.website-navigation').css({top: '0'}); 
     console.log('NO ANIMATION: Inforce Set Height'); 
    } 
}); 
+1

还有......你去哪里使用滚动事件?你有什么试图获得scrollTop值? –

+0

我想要jQuery的scrollTop,但是将它组合成上面的if条件证明是无用的。 – Neil

回答

1

变化从

scrTop = $("html, body").scrollTop(); 

支票

scrTop = $("body").scrollTop(); 

这将检测用户距离顶端有多远。

编辑: 这应该与

scrTop = $(window).scrollTop(); 

屁股被设置在这里解释: https://stackoverflow.com/a/2422159/1809751

+0

感谢您的加入,它始终处于更精细的细节中! – Neil

+0

@NeilLittle我可能会错过一些东西......但是'$(“html,body”)。scrollTop();'? –

+1

$(“html,body”)。scrollTop();在Chrome中始终返回0。用$(window).scrollTop()获得价值甚至更好。 –

1
var scrTop; 

$(window).on("load scroll", function() { 
    scrTop = $("html, body").scrollTop(); 
    if(!scrTop){ //if scrollTop is at 0 

    }else{ 

    } 
}); 

或在您的情况大概是这样的:

if (!scrTop && viewportWidth > stopTabletAnimation){ 
+0

刚刚添加我的评论,6秒慢:)让我更新代码。看看会发生什么! – Neil

+0

我可以问你最新的更新&&和||之间的区别吗?是什么? – Neil

+1

@Neil'&&'意味着'condition' ** AND **'condition'必须是真的,而'||'意味着只有一个'condition' ** **或''condition''需要真实来验证 –