Я создаю сайт splitscrolling, и он отлично работает. Но у меня есть одна проблема, когда пользователь перестает прокручивать ее, запускает функцию, называемую alignWhenIdle, и что это значит, выравнивает столбцы, чтобы они стали «одним».Увольнение анимации при выравнивании
Теперь это хорошо работает, но я не могу настроить таргетинг на определенную часть столбца, который выравнивается. допустим, когда выравнивание столбца номер 2 (см. изображение), я хочу, чтобы можно было запустить анимацию. Я попытался использовать обратный вызов, но он запускает функцию каждый раз, когда столбцы выровнены.
Это мой JS:
(function ($) {
var top = 0;
var contentHeight, contents, totalHeight;
var locked = false;
var timeout;
var align = function() {
var pos = (top + $(window).scrollTop());
var snapUp = 0 - (pos % contentHeight) < (contentHeight/2);
var multiplier = snapUp
? Math.ceil(pos/contentHeight)
: Math.floor(pos/contentHeight);
var newTop = contentHeight * multiplier;
$('html, body').animate({ scrollTop: newTop + totalHeight }, 200);
locked = false;
};
var reset = function() {
contentHeight = $('.right').height();
contents = $('.right > .content').length;
totalHeight = contentHeight * (contents - 1);
top = (0 - totalHeight);
};
var scrollRight = function() {
$('.right').css('top', (top + $(window).scrollTop()) + 'px');
};
var alignWhenIdle = function (delay) {
clearTimeout(timeout);
timeout = setTimeout(align, delay);
};
$(document).on('ready', function() {
reset();
scrollRight();
});
$(window).on('scroll', function() {
locked = true;
scrollRight();
});
$(window).on('mouseup', function (e) {
if (locked) {
align();
}
});
$(window).resize(function() {
locked = true;
reset();
scrollRight();
alignWhenIdle(300);
});
$(window).on('mousewheel', function (e) {
alignWhenIdle(300);
});
$(window).on("keyup", function (e) {
alignWhenIdle(300);
});
})(jQuery);
Любая помощь очень ценится,
Приветствия
Извините, не можете попасть в вашу проблему ... Вы хотите запустить анимацию (как я понимаю, внутри блока 2) после прокрутки? или в момент прокрутки? – smnbbrv
не получает вашу проблему .. –
жаль английский не мой родной язык. Но да, если вы перестанете прокручиваться в блоке 2 и когда он выравнивается там, я хочу, чтобы у вас была возможность запускать анимацию – user2099810