2012-12-19 71 views
2

我有一個像這樣的jQuery覆蓋。當頁面加載時會顯示像這樣。 ONLOAD在jQuery中檢測滾動並更改操作

當用戶再次點擊關閉或反饋按鈕時,它會像這樣回到它的位置。 POSITION

功能是這樣的。現在當用戶滾動頁面時,它應該自動回到它的位置。 Onload我正在寫這個jQuery代碼來執行這個操作,onclick關閉按鈕reset()被調用。點擊反饋slideme()被調用。所以我的問題是,當用戶向下滾動頁面時,此覆蓋應該回到位置。如何檢測用戶滾動並執行此操作?

$(document).ready(function() 
{ 
    SlideMe(); 

    $('body').keypress(function(e) 
    { 
     if(e.keyCode == 27) 
     { 
      reset(); 
     } 
}); 

    }); 
    function SlideMe() 
    { 
     if(document.getElementById('hdnFBStats').value == 1) 
     { 
      document.getElementById('hdnFBStats').value =0; 
      reset(); 
      return false; 
     } 

     $lngDocWidth = ($(document).width()/3)+32; 

     $('#overlay').fadeIn('fast',function(){ 
      $("#fb").animate({marginRight:$lngDocWidth}, 1500);   
     }); 

     $("#feedbackimg").css("margin-right", '100px'); 
     $("#feedbackimg").css("float", 'right'); 

     document.getElementById('hdnFBStats').value= 1; 
    } 

    function reset() 
    { 
     $("#fb").css('margin-right', '0px'); 
     $('#overlay').fadeOut('fast'); 
    } 

回答

3

這隻會做滾動檢查,如果該標籤實際上是開放的。

$(window).scroll(function() { 
    if(document.getElementById('hdnFBStats').value == 1) { 
     document.getElementById('hdnFBStats').value = 0; 
     reset(); 
    } else { 
     if($(window).scrollTop() == 0) { 
      SlideMe(); 
      document.getElementById('hdnFBStats').value = 1; 
     } 
    } 
}); 
+0

謝謝你的答案但是,這是行不通的。 –

+0

你可以先嚐試一下沒有包裝「if」語句來驗證滾動檢測是否有效? – Calvin

+2

@Calvin:你不應該檢查標籤是否在回調中打開。如果將事件綁定包裝到if語句中,它將永遠不會被綁定在第一位。 – regulatethis