我正在开展一个我需要收听scroll
事件的项目..我想知道什么是更好的方法..
function scroll() {
if ($(window).scrollTop() > 200) {
top.fadeIn();
} else {
top.fadeOut();
}
if (menuVisible) {
quickHideMenu();
}
}
function scroll() {
didScroll = true;
}
setInterval(function() {
if ( didScroll ) {
didScroll = false;
if ($(window).scrollTop() > 200) {
top.fadeIn();
} else {
top.fadeOut();
}
if (menuVisible) {
quickHideMenu();
}
}
}, 250);
谢谢:)
答案 0 :(得分:19)
都不是。我刚刚阅读有关JS / jQuery模式的内容。 Window Scroll事件有一个示例:jQuery Window Scroll Pattern
var scrollTimeout; // global for any pending scrollTimeout
$(window).scroll(function () {
if (scrollTimeout) {
// clear the timeout, if one is pending
clearTimeout(scrollTimeout);
scrollTimeout = null;
}
scrollTimeout = setTimeout(scrollHandler, 250);
});
scrollHandler = function () {
// Check your page position
if ($(window).scrollTop() > 200) {
top.fadeIn();
} else {
top.fadeOut();
}
if (menuVisible) {
quickHideMenu();
}
};
最初来自:Javascript Patterns
答案 1 :(得分:0)
它对我来说很好
<style type="text/css">
.scrollToTop {
width:100px;
height:130px;
padding:10px;
text-align:center;
background: whiteSmoke;
font-weight: bold;
color: #444;
text-decoration: none;
position:fixed;
top:75px;
right:40px;
display:none;
background: url('arrow_up.png') no-repeat 0px 20px;
}
.scrollToTop:hover{
text-decoration:none;
}
</style>
<script>
$(document).ready(function(){
//Check to see if the window is top if not then display button
$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('.scrollToTop').fadeIn();
} else {
$('.scrollToTop').fadeOut();
}
});
//Click event to scroll to top
$('.scrollToTop').click(function(){
$('html, body').animate({scrollTop : 0},800);
return false;
});
});
</script>
<a href="#" class="scrollToTop">Scroll To Top</a>
http://www.paulund.co.uk/how-to-create-an-animated-scroll-to-top-with-jquery