2015-09-02 1 views
1

J'ai un site Web d'une seule page avec plusieurs ancres. Je référence cet exemple de violon http://jsfiddle.net/kamikazefish/t6LLybx8/201/ pour avancer la page à l'ancre suivante lorsque la molette de la souris est utilisée. Y at-il un moyen que je peux contrôler la vitesse si quelqu'un pouvait aider serait très apprécié. Gardez à l'esprit que je suis très nouveau pour le code et je l'adorerais s'il a été écrit non seulement me dire d'ajouter une fonction ou quelque chose grâce. Voici le Javascript.Javascript passe à l'ancre suivante sur la page avec la souris lentement

(function() { 
    var delay = false; 

    $(document).on('mousewheel DOMMouseScroll', function(event) { 
     event.preventDefault(); 
     if(delay) return; 

     delay = true; 
     setTimeout(function(){delay = false}, 200) 

     var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail; 

     var a= document.getElementsByTagName('a'); 
     if(wd < 0) { 
      for(var i = 0 ; i < a.length ; i++) { 
       var t = a[i].getClientRects()[0].top; 
       if(t >= 40) break; 
      } 
     } 
     else { 
      for(var i = a.length-1 ; i >= 0 ; i--) { 
       var t = a[i].getClientRects()[0].top; 
       if(t < -20) break; 
      } 
     } 
     $('html,body').animate ({ 
      scrollTop: a[i].offsetTop 
     }); 
    }); 
})(); 

Répondre

2

Vous pouvez simplement ajouter le temps pendant lequel vous voulez que l'animation à courir comme si:

$('html,body').animate({ 
    scrollTop: a[i].offsetTop 
}, 1000); 

1000 est le temps en ms. Si vous le voulez plus lent, augmentez ce nombre.

+0

humm ok fonctionne parfaitement im très nouveau à ce maintenant je me sens un peu bête merci :) –

+0

pas de problème, nous avons tous commencé comme ça :-) Apprécierait si vous pourriez marquer ma réponse comme le meilleur si cela vous a aidé – kremalicious