2017-08-24 111 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>