2016-11-26 46 views
0

的jQuery:如果窗口滾動量 - >然後轉回jQuery中

$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 

    if (scroll >= 50) { 
     $(".class").addClass("bgposi"); 
     // $(".top").addClass("fixd"); 
     // $(".logo").addClass("maxwidth"); 
     if (scroll >= 50) { 
     $(".class").addClass("bgposi"); 
     // $(".top").addClass("fixd"); 
     // $(".logo").addClass("maxwidth"); 
     } 
    } 

}); 

所以,基本上我的類,我添加上滾動。 .bgposi正在移動背景圖像位置,當我使用(window).scroll(function()在頁面上滾動50px時。哪些工作正常,所以我的第一個if語句單獨..但是,我試圖扭轉它與另一個if語句,當用戶滾動備份 - 這是我失敗的地方..任何指針?

回答

2

更正你的第二個if語句如下:

  • 不嵌套它。
  • 將比較運算符>=更改爲<=。使用removeClass

變化:

$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 

    if (scroll >= 50) { 
     $(".class").addClass("bgposi"); 
     // $(".top").addClass("fixd"); 
     // $(".logo").addClass("maxwidth"); 
     if (scroll >= 50) { 
     $(".class").addClass("bgposi"); 
     // $(".top").addClass("fixd"); 
     // $(".logo").addClass("maxwidth"); 
     } 
    } 

}); 

要:

$(window).scroll(function() { 
    var scroll = $(window).scrollTop(); 
    if (scroll >= 50) { 
    $(".class").addClass("bgposi"); 
    // $(".top").addClass("fixd"); 
    // $(".logo").addClass("maxwidth"); 
    } else if (scroll <= 50) { 
    $(".class").removeClass("bgposi"); 
    // $(".top").removeClass("fixd"); 
    // $(".logo").removeClass("maxwidth"); 
    } 
}); 

你可以緩存一些重用選擇(做查找一次),像這樣:

$(window).scroll(function() { 
    var scroll = $(this).scrollTop(); 
    var $class = $(".class"), 
    $top = $(".top"), 
    $logo = $(".logo"); 

    if (scroll >= 50) { 
    $class.addClass("bgposi"); 
    $top.addClass("fixd"); 
    $logo.addClass("maxwidth"); 
    } else if (scroll <= 50) { 
    $class.removeClass("bgposi"); 
    $top.removeClass("fixd"); 
    $logo.removeClass("maxwidth"); 
    } 
}); 

$(window).scroll(function() { 
 
    var scroll = $(this).scrollTop(); 
 
    var $class = $(".class"); 
 

 
    if (scroll >= 50) { 
 
    $class.addClass("bgposi"); 
 
    } else if (scroll <= 50) { 
 
    $class.removeClass("bgposi"); 
 
    } 
 
});
body { 
 
    height: 200vh; 
 
    background-color: peachpuff; 
 
} 
 
.class { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    right: 0; 
 
    bottom: 20%; 
 
    background-color: dodgerblue; 
 
} 
 
.class.bgposi { 
 
    background-color: purple; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="class"></div>

+0

謝謝!我想,最近做得有點過分了。哈哈嵌套一切。 –

+0

哈哈,我感覺你。不客氣,祝你好運! – Ricky