2017-04-23 21 views
0

我想用jQuery創建一個函數,如果用戶滾動經過某個點並且屏幕寬度小於特定數量的像素,則顯示div在if語句中滾動過去某個點和屏幕寬度

如果這兩個條件都不符合,我想隱藏div。這是我迄今爲止的,但我不知道如何使其工作。

var y = $(this).scrollTop(); 
 
    
 
if ((!$(y > 400)) && (!$($(window).width() < 400)) ){ 
 
     $('.subheader').slideDown(); 
 
    } else { 
 
     $('.subheader').hide(); 
 
    } 
 
});
.subheader { 
 
    width: 100%; 
 
    height: 60px; 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    background: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="subheader"></div>

回答

1

好吧,公正的警告這是糟糕的性能明智的,所以我建議尋求調節功能,但它應該適合您的目的。基本上這是在每個卷軸或窗口上調整大小,它檢查你的要求,並做它應該做的。

$(document).ready(function() { 
    $(window).scroll(function(){ 
    subHeaderCheck(); 
    }); 
    $(window).resize(function() { 
    subHeaderCheck(); 
    }) 

    function subHeaderCheck() { 
    if($(window).scrollTop() > 20 && $(window).width() < 600) { 
     $(".subheader").slideDown(); 
    } else { 
     $(".subheader").slideUp(); 
    } 
    } 
}) 

小提琴https://jsfiddle.net/calder12/rhje57a4/ 節流:https://www.sitepoint.com/throttle-scroll-events/

0

你應該先解決您的病情,並使其成爲一個功能。然後創建兩個事件監聽器來調用函數一個監聽器來調整窗口大小,並在頁面滾動時調用一個調用器