2014-01-12 139 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''需要真實來驗證 –