Анимированная прокрутка для div внутри сайта параллакса
У меня есть несколько ссылок в верхней части моей страницы параллакса, и я хочу, чтобы они анимировали прокрутку до нужного места на странице, когда вы нажимаете на них. В настоящее время ссылки просто переходят на места на моей странице, без анимации.
Работает параллакс-прокрутка, которая является первым фрагментом кода в моем файле.js, который можно просмотреть внизу страницы.
вот мои ссылки div
<div id="main-nav"> <!-- top locked scroll bar -->
<p>
<a class="click" href="#home">Your Links</a> |
<a href="#me">More Links</a> |
<a href="#projects">Another Link</a> |
<a href="#hire">Really</a>
<!-- <button onclick="changeColor()">Yin/Yang</button> -->
</p>
</div>
пример перехода на страницу (но я хочу, чтобы он анимировался)
section class="box slide slide-1">
<div class="container">
<div id="home"></div>
<h1>Main Title</h1>
</div>
</section>
вот весь javascript, который я использую на странице
(function(){
var parallax = document.querySelectorAll(".slide"),
speed = 0.5;
window.onscroll = function(){
[].slice.call(parallax).forEach(function(p,i){
var windowYOffset = window.pageYOffset,
theBackgrounPos = "0 " + (windowYOffset * speed) + "px";
p.style.backgroundPosition = theBackgrounPos;
});
};
})();
/************ CODE USED TO MAKE THE ANIMATION SCROLL TO THAT IS NOT WORKING*////
$(document).ready(function (){
$(".click").click(function (){
$('html, body').animate({
scrollTop: $("#home").offset().top
}, 2000);
});
});
Любая помощь будет принята с благодарностью, даже если мой лучший маршрут начинается заново.
1 ответ
Я только что запустил следующее на сайте, над которым я работаю.
JavaScript:
$(document).ready(function () {
$("a[href^='#']").click(function(event) {
var target = $($(this).attr("href"));
event.preventDefault();
$("html, body").animate({
scrollTop: target.offset().top
}, 500);
});
});
HTML:
<nav id="nav-menu">
<a href="#home"><p>home</p></a>
<a href="#services"><p>services</p></a>
<a href="#work"><p>work</p></a>
<a href="#about"><p>about</p></a>
<a href="#contact"><p>contact</p></a>
</nav>
А затем делит страницу на "id=home", "id=services" и т. Д.