Ich erstellte einfache Link-Animation, um zu blättern, kann dieser Link sein, um im Abschnitt auf der gleichen Seite oder Link zu externen URL zu blättern, das Problem, dass wenn Sie auf die Schaltfläche ("Abschnitt 4") klicken finde eine seltsame Bewegung, das war das erste Problem.
Scrollen, um Animation
Zweites Problem: dass, wenn der Benutzer klicken Sie auf die Schaltfläche auf eine andere Schaltfläche klicken Sie einmal mehr als dann wird die Scroll nicht funktionieren, bis die vorherige Klick beendet:
ist mein Code unten:
$(".links a").click(function() {
$("html, body").animate({
scrollTop: $($(this).attr("href")).offset().top
}, 1400)
})
.links {
width:600px;
position:fixed;
top:0;
padding:20px;
}
.links a {
display:inline-block;
padding:10px 20px;
border:1px solid #0094ff;
}
.section {
width:400px;
height:200px;
margin:300px auto 600px;
background-color:#0094ff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="links">
<a href="#section1">Section 1</a>
<a href="#section2">Section 2</a>
<a href="#section3">Section 3</a>
<a href="#section4">Section 4</a>
<a href="http://google.com">External Link</a>
</div>
<div id="section1" class="section"></div>
<div id="section2" class="section"></div>
<div id="section3" class="section"></div>
<div id="section4" class="section"></div>
Hinweis: rate mir bitte nicht, irgendein plugin zu benutzen, das ich mehr und mehr über Javascript wissen möchte
nicht sicher, ob ich verstehe, vor allem, was mit einem Klick auf '# section4' falsch ist, aber tut diese Adresse, die er oder die zweite Ausgabe ? Klingt so, als müssten Sie '$ .stop()' vor '$ .animate()' 'http://codepen.io/anon/pen/LWpeyJ –
aufrufen. Normalerweise können Sie das zweite Problem, das Sie erwähnen, mit' .stop beheben() 'so würde Ihr Code lesen $ (" html, body "). stop(). animate ({...' – Djave
Vielen Dank aber über das erste Problem :) –