2017-04-23 77 views
1

我有一個基於vh的網站,當我想要顯示何時某個vh已經滾動的元素。我嘗試使用if語句與滾動距離的變量,但是這樣它不工作就沒有不斷更新:當達到某個滾動距離時觸發事件jQuery

var distancePX = $(window).scrollTop(); 
var windowHeight = $(window).height(); 
var distanceVH = scroll/height * 100; 
if (distance >= 170) { 
    //ACTIONS 
}; 

我可以用什麼做的上方不斷更新的版本?

+0

您可以在這裏看到一些例子window.onscroll方法裏面的代碼:JavaScript的:檢測滾動結束] (http://stackoverflow.com/questions/3962558/javascript-detect-scroll-end/24808540#24808540),或[我如何確定一個jQuery滾動事件的方向](http://stackoverflow.com/questions/4326845 /如何-可以-I-確定最方向的-A-jquery的滾動偶t/24815216#24815216) – jherax

+0

請參閱[當div的2/3位於viewport時的jQuery觸發器](http://stackoverflow.com/questions/29140800/jquery-trigger-when-2-3s-of-div-are-在視口/ 29142018#29142018) – guest271314

回答

1

使用純JS,您可以使用onscroll事件並將其綁定到主體。這裏有一個例子:

HTML

<body onscroll="myFunction()"> 
    ... 
</body> 

JS

var distancePX = $(window).scrollTop(); 
var windowHeight = $(window).height(); 
var distanceVH = scroll/height * 100; 

function myFunction() { 
    if (distance >= 170) { 
    //ACTIONS 
    } 
} 

您還可以使用jQuery的scroll()方法,如果你喜歡一個非標記解決方案。使用這種方法,只需將if語句放在scroll()函數中即可。這裏有一個例子:

var distancePX = $(window).scrollTop(); 
var windowHeight = $(window).height(); 
var distanceVH = scroll/height * 100; 

$("body").scroll(function(){ 
    if (distance >= 170) { 
    //ACTIONS 
    } 
}); 

希望這有助於!

0

jQuery代碼

$(window).scroll(function(){ 
      if ($(this).scrollTop() >= 170) { 
       //actions... 
      } else { 
       //actions... 
      } 
     });