Я строю сайт с вертикальным прокруткой.jQuery scrollTop a little jumpy
Я реализован JQuery ниже:
<script type="text/javascript">
$("document").ready(function() {
$('.homebutton').click(function(){
$('html, body').animate({
scrollTop: $("#home").offset().top
}, 1500);
});
$('.aboutbutton').click(function(){
$('html, body').animate({
scrollTop: $("#about").offset().top
}, 1500);
});
$('.portfoliobutton').click(function(){
$('html, body').animate({
scrollTop: $("#portfolio").offset().top
}, 1500);
});
$('.contactbutton').click(function(){
$('html, body').animate({
scrollTop: $("#contact").offset().top
}, 1500);
});
});
</script>
Со следующим HTML:
<div id="wrapper">
<div id="home" class="tab home">
<div class="header">
<div class="logo">
<img src="images/logo.jpg" />
</div>
<div class="menuholder">
<ul id="homemenu" class="menu">
<li><a class="active homebutton" href="#home">HOME<br /></a> </li>
<li><a class="aboutbutton" href="#about">ABOUT<br /></a> </li>
<li><a class="portfoliobutton" href="#portfolio">PORTFOLIO<br /></a> </li>
<li><a class="contactbutton" href="#contact">CONTACT<br /></a> </li>
</ul>
</div>
<div class="clr"></div>
</div>
<div class="content">
</div>
</div>
<div id="about" class="tab">
<div class="header">
<div class="logo">
<img src="images/logo.jpg" />
</div>
<div class="menuholder">
<ul id="aboutmenu" class="menu">
<li><a href="#home" class="homebutton">HOME</a> </li>
<li><a class="active aboutbutton" href="#about">ABOUT<br /><span>All you need to know</span></a> </li>
<li><a href="#portfolio" class="portfoliobutton">PORTFOLIO<br /><span>See what we can do!</span></a> </li>
<li><a href="#contact" class="contactbutton">CONTACT<br /><span>Get in touch and say HI!</span></a> </li>
</ul>
</div>
</div>
<div class="content">
</div>
</div>
<div id="portfolio" class="tab">
<div class="header">
<div class="logo">
<img src="images/logo.jpg" />
</div>
<div class="menuholder">
<ul id="portfoliomenu" class="menu">
<li><a href="#home" class="homebutton">HOME</a> </li>
<li><a href="#about" class="aboutbutton">ABOUT<br /><span>All you need to know</span></a> </li>
<li><a class="active portfoliobutton" href="#portfolio">PORTFOLIO<br /><span>See what we can do!</span></a> </li>
<li><a href="#contact" class="contactbutton">CONTACT<br /><span>Get in touch and say HI!</span></a> </li>
</ul>
</div>
</div>
<div class="content">
</div>
</div>
<div id="contact" class="tab">
<div class="header">
<div class="logo">
<img src="images/logo.jpg" />
</div>
<div class="menuholder">
<ul id="contactmenu" class="menu">
<li><a href="#home" class="homebutton">HOME</a> </li>
<li><a href="#about" class="aboutbutton">ABOUT<br /><span>All you need to know</span></a> </li>
<li><a href="#portfolio" class="portfoliobutton">PORTFOLIO<br /><span>See what we can do!</span></a> </li>
<li><a class="active contactbutton" href="#contact">CONTACT<br /><span>Get in touch and say HI!</span></a> </li>
</ul>
</div>
</div>
<div class="content">
</div>
</div>
</div>
Моя проблема заключается в том, что спираль может быть немного нервным, когда прыгает между домом и контактных соединений. По общему признанию, это происходит только тогда, когда вы нажимаете одну из кнопок до того, как свиток успел перехватить дыхание, но этот конкретный клиент очень специфичен в отношении того, как все работает, и я знаю, что они подберут его (плюс я никогда не буду сознательно хотят выпускать что-то с ошибкой, как бы незначительны).
Мой вопрос в том, есть ли простой способ поставить в очередь действия в jQuery, чтобы предыдущее действие успело остановиться и перевести дыхание до следующего запуска?
Я пробовал .stop() после функции щелчка и после функции анимации. Один после функции щелчка сделал его еще хуже, а один после функции оживления сломал все это вместе ...
Большое спасибо!
Кевин
Ничего себе! Я думал, что принял эти ответы, но вместо этого я проголосовал за них! Все исправлено сейчас ... Спасибо за ваш ответ, я пробовал это и, увы, без радости. Можно ли разместить ссылки здесь? –
Разумеется, поощряются ссылки на пример кода. – ahren
На самом деле это действительно влияет на это, похоже, почти наоборот. Если вы быстро нажмете на следующую кнопку, это не кажется резким, но если вы оставите его на несколько секунд, он, кажется, прыгнет, когда вы нажмете. Я не уверен, так как мои глаза не велики, но я думаю, что сначала он прыгает в верхнюю часть страницы, а затем продолжает как следует ... –