2017-08-24 94 views
2

我想在停止滾動時顯示頂部div,並在用戶滾動時隱藏它。我有代碼在反向工作,有人可以研究如何將其倒轉,以便div顯示停止滾動並隱藏用戶滾動時。在滾動上隱藏div,在站點上顯示div

$(window).scroll(function() { 
 
    $('top').stop(true, true).show().fadeOut('fast'); 
 
});
top { 
 
    position: fixed; 
 
    background: #000; 
 
    color: #eee; 
 
    right: 0; 
 
    top: 0; 
 
    padding: 10px; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<top>Show me on scroll</top> 
 
<p> 
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
</p> 
 
<p> 
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
 
</p>

回答

2

試試這個:

$(window).scroll(function() { 
     $('top').stop(true, true).hide().fadeIn('fast'); 
    }); 

和css:

top { 
    position: fixed; 
    background: #000; 
    color: #eee; 
    right: 0; 
    top: 0; 
    padding: 10px; 
    display: block; 
} 

fiddle

+0

這只是使它顯出了所有的時間。 – Johannes

+0

'div在停止滾動時顯示,當用戶滾動時隱藏'。檢查小提琴 –

+0

偉大的解決方案,謝謝 – DarrenLee

0

使用deboun ce函數從下劃線開始,或者編寫自己的去抖動函數。試試這個現場演示。很簡單,IMO提供最佳的用戶體驗:

var $hideMe = $('#imHiddenDuringScroll') 
 

 
var hideIt = _ => { 
 
    $hideMe.fadeOut('fast') 
 
    showItLazy() 
 
} 
 
var showItLazy = _.debounce(_ => { 
 
    $hideMe.fadeIn('fast') 
 
}, 350) 
 

 
$(window).scroll(hideIt)
#imHiddenDuringScroll { 
 
    position: fixed; 
 
    background: #000; 
 
    color: #eee; 
 
    right: 0; 
 
    top: 0; 
 
    padding: 10px; 
 
} 
 
#longScrollableText { 
 
    width: 270px; 
 
}
<script src="https://unpkg.com/[email protected]/dist/jquery.min.js"></script> 
 
<script src="https://unpkg.com/[email protected]/underscore-min.js"></script> 
 

 
<div id="imHiddenDuringScroll">I am hidden during scroll</div> 
 
<div id="longScrollableText"> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. uis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit met, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in rehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia  deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur dipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim eniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo onsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, unt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
</div>