Мне нужно было бы выполнить гладкую полную прокрутку страницы. Я уже сделал это на этой странице:Полная прокрутка страницы
http://superhostitel.cz/sluzby
Но когда я прокручиваю с колесом больше, он будет перемещаться на большее количество страниц. Пожалуйста, как я могу настроить прокрутку только одной страницы?
Мой код:
$(document).ready(function() {
var divs = $('.service');
var dir = 'up'; // wheel scroll direction
var div = 0; // current div
$(document.body).on('DOMMouseScroll mousewheel', function (e) {
if (e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) {
dir = 'down';
} else {
dir = 'up';
}
// find currently visible div :
div = -1;
divs.each(function(i){
if (div<0 && ($(this).offset().top >= $(window).scrollTop())) {
div = i;
}
});
if (dir == 'up' && div > 0) {
div--;
}
if (dir == 'down' && div < divs.length) {
div++;
}
//console.log(div, dir, divs.length);
$('html,body').stop().animate({
scrollTop: divs.eq(div).offset().top
}, 800);
return false;
});
$(window).resize(function() {
$('html,body').scrollTop(divs.eq(div).offset().top);
});
});
Ваш сайт отлично выглядит. Есть готовое отличное решение для просмотра полной страницы и отлично работает при прокрутке: https://github.com/alvarotrigo/fullPage.js также вы можете попробовать использовать функцию debounce для события mousewheel https: // davidwalsh. name/javascript-debounce-function – Nickey
Мне кажется, что вам нужно реализовать задержку таймера, в течение которой будут отменены дальнейшие события прокрутки. – Draco18s
У вас, ребята, есть идея сделать это? – Filip