#javascript #css
#javascript #css
Вопрос:
Я хочу захватить значение translateX() свойства transform и уменьшать его на 400 пикселей каждый раз, когда запускается мое событие onDocumentMouseScroll. Я новичок в JavaScript и не уверен, как это сделать, буду признателен за любую помощь!
var bg = document.querySelector('section.bg-type');
function moveBackground() {
if (bg.style.transform.translateX != -1600) {
bg.style.transform = "translateX(" (-400) "px)";
}
};
function onDocumentMouseScroll(event) {
console.log(event);
if (Date.now() - lastMouseWheelStep > 600) {
lastMouseWheelStep = Date.now();
var delta = event.detail || -event.wheelDelta;
if (delta > 0) {
navigateNext();
addOnScroll();
moveBackground();
} else if (delta < 0) {
navigatePrev();
}
}
}
Когда пользователь прокручивает ‘transform: translateX(-400px)’, свойство и значение добавляются в CSS для.bg-type, затем -400 удаляется из каждого последующего прокрутки.
Ответ №1:
Как насчет сохранения последнего значения translateX и его обновления?
let lastTranslateX = 0;
function moveBackground() {
if (bg.style.transform.translateX != -1600) {
lastTranslateX -= 400;
bg.style.transform = "translateX(" (lastTranslateX) "px)";
}
};
РЕДАКТИРОВАТЬ: Удалено let
ранее lastTranslateX -= 400
, как предложила Темани Афиф в комментариях.
Комментарии:
1. Спасибо за быстрый ответ, но у меня это не работает. Я думаю, что проблема в «if (bg.style. transform.translateX != -1600)». Я не уверен, что это захватывает значение translateX(). Однако, насколько мне известно, весь ваш остальной код имеет смысл.
2. Я получаю «Uncaught SyntaxError: неожиданный токен -=» в «let lastTranslateX -= 400;» в консоли, кстати.
3. @SeanK вам нужно удалить
let
внутри if, вы снова переопределяете переменную, что неверно4. Темани доброта незнакомцев не перестает меня удивлять, это сработало! Ты настоящий герой среди людей!