2016-12-06 29 views
1

如何顯示和隱藏scrolltotop的潛水。 條件: 1.當用戶scrool到80 px時,它會顯示 2.如果用戶點擊它,它會將用戶置頂。 3.如果用戶在某個位置停留2秒或更長時間(可能超過200px或更多),scroolbar也會隱藏。如果他向上或向下滾動,則scroolbar可見。ScroolToTop基於用戶的滾動顯示和隱藏

$(document).ready(function() { 
    $("#scrollup").hide('slow') 

    $(window).scroll(function (e) { 
     e.preventDefault(); 
     if ($(window).scrollTop() > 80) { 
      $("#scrollup").show('slow'); 
     } 
     if ($(window).scrollTop() < 80) { 
      $("#scrollup").hide('slow'); 
     } 
    }); 

    $(".scrollup").click(function() { 
     $("html, body").animate({ scrollTop: 0 }, 500); 
     return false; 
    }); 
}); 

我已經做了1和2的條件,但我怎麼能實現3?

回答

1

添加setInterval(function(){ $("#scrollup").hide('slow'); }, 2000);,並清除它的滾動

var idleInterval=null; 
$(document).ready(function() { 
    $("#scrollup").hide('slow'); 

    $(window).scroll(function (e) { 
     if(idleInterval != null) 
     clearTimeout(idleInterval); 
     idleInterval = setInterval(function(){ $("#scrollup").hide('slow'); }, 2000); 
     idleTime = 0; 
     e.preventDefault(); 
     if ($(window).scrollTop() > 80) { 
      $("#scrollup").show('slow'); 
     } 
     if ($(window).scrollTop() < 80) { 
      $("#scrollup").hide('slow'); 
     } 
    }); 

    $(".scrollup").click(function() { 
     $("html, body").animate({ scrollTop: 0 }, 500); 
     return false; 
    }); 
}); 

演示: -

var idleInterval=null; 
 
$(document).ready(function() { 
 
    $("#scrollup").hide('slow'); 
 

 
    $(window).scroll(function (e) { 
 
     if(idleInterval != null) 
 
     clearTimeout(idleInterval); 
 
     idleInterval = setInterval(function(){ $("#scrollup").hide('slow'); }, 2000); 
 
     idleTime = 0; 
 
     e.preventDefault(); 
 
     if ($(window).scrollTop() > 80) { 
 
      $("#scrollup").show('slow'); 
 
     } 
 
     if ($(window).scrollTop() < 80) { 
 
      $("#scrollup").hide('slow'); 
 
     } 
 
    }); 
 

 
    $(".scrollup").click(function() { 
 
     $("html, body").animate({ scrollTop: 0 }, 500); 
 
     return false; 
 
    }); 
 
});
#pagewrap{ 
 
    height:1000px; 
 
} 
 
#scrollup { 
 
    position: fixed; 
 
    color: white; 
 
    padding: 10px 30px; 
 
    background: red; 
 
    bottom: 30px; 
 
    right: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="pagewrap"> 
 
\t <h1>Demo</h1> 
 
\t <h2><a href="http://webdesignerwall.com/tutorials/animated-scroll-to-top">Animated Scroll to Top</a></h2> 
 
<div id="scrollup"> 
 
    scroll to top 
 
</div> 
 

 
</div>