Après avoir cliqué sur la petite div avec le caractère ^
en bas de l'écran, l'animation de défilement est lancée normalement. Mais après l'avoir fait plusieurs fois et quand vous essayez de faire défiler vers le bas, il va rester debout pendant un certain temps (proportionnel au nombre de fois que vous avez cliqué sur la div). Est-ce que quelqu'un peut me dire pourquoi ça fait ça?Le défilement ne fonctionne pas après l'animation scrollTop
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div id="test">Where to go</div>
<div id="goToTop">^</div>
</body>
</html>
JS:
$(window).scroll(function(){
var st = $(window).scrollTop();
var timeout = setTimeout(function(){
var currentScrollTop = $(window).scrollTop();
if(st == currentScrollTop){
var yPosInAbsolute = window.innerHeight - 100;
$('#goToTop').css({'top': st + yPosInAbsolute, 'right': 100});
$('#goToTop').show();
$('#goToTop').click(function(){
$('html,body').animate({scrollTop: $('#test').offset().top - 50}, 2000);
clearTimeout(timeout);
});
}else{
$('#goToTop').hide();
clearTimeout(timeout);
}
}, 2000);
});
Le DEMO
que certains temps est les piles de temps Timeouts et animation. – frikinside
Merci pour votre aide. :) – Xlander
[Fiddle Demo] (http://jsfiddle.net/GopsAB/sCaLr/1/) Mon essai va gaspiller le coz de réponse rapide. Quoi qu'il en soit, essayez-le :) –