у меня 3 раздела. Каждый раздел имеет свою высоту. JSFiddle в конце вопроса.
GOAL : я хочу, чтобы img (изображение ракеты) следовало за пользователем, когда он прокручивал, и изменял позиции (слайд) справа налево когда он прокручивает мимо секции.
Мне удалось заставить ракету следовать за мной, когда я прокручивал вниз. Теперь я хочу, чтобы ракета скользила влево, когда я прохожу первый участок, а затем сдвигаюсь назад вправо, когда я прохожу второй участок.
Ракета вращается, когда пользователь прокручивает секцию. Это прекрасно работает! Но когда я хочу, чтобы он переместился на другую сторону, он работает только слева. Я не могу получить его до go вправо Вот часть jQuery для перемещения ракеты:
$(document).scroll(function() {
var scrollIs = $(window).scrollTop();
console.log("I've scrolled: ", scrollIs);
if($(window).scrollTop() >= topOfSecondSection - 230){ //passed first section
$(".rocket").css('transform', 'rotate(50deg)'); //turn rocket WORKS
//$(".rocket").css('left', '10px'); //JUMP CUTS THE ROCKET TO LEFT SIDE, DOESN'T SLIDE/MOVE IT
$(".rocket").stop().animate({ "left": "10px"}, 100); //ISN'T INSTANT-SMOOTH
$("#first-section").css("background","red");
$("#second-section").css("background","blue");
$("#third-section").css("background","orange");
}
if($(window).scrollTop() >= topOfThirdSection - 150){ //passed second section
$(".rocket").css('transform', 'rotate(1deg)'); //turns rocket back to look straight WORKS
//$(".rocket").css('right', '10px'); //move rocket right DOESNT'T MOVE
$(".rocket").stop().animate({ "right": "10px"}, 100); //DOESN'T MOVE
$("#first-section").css("background","purple");
$("#second-section").css("background","yellow");
$("#third-section").css("background","brown");
}
//DEFAULT
if($(window).scrollTop() < s1Height){
//return to normal
$(".rocket").css('transform', 'rotate(1deg)'); //WORKS
//$(".rocket").css('right', '10px'); //DOESN'T MOVE
$(".rocket").stop().animate({ "right": "10px"}, 100); //DOESN'T MOVE
$("#first-section").css("background","green");
$("#second-section").css("background","grey");
}
});
Вот JSFiddle: https://jsfiddle.net/prozik/d7g3wtye/101/
РЕДАКТИРОВАТЬ:
Когда я создаю в CSS:
.moveLeft {
left: 10px;
}
.moveRight {
right: 10px;
}
А потом в jQuery я делаю:
$(".rocket").removeClass("moveLeft");
$(".rocket").addClass("moveRight");
Работает. Перемещает элемент вправо / влево. Но он мигает ракетой в положении. Мне нужно, чтобы он переместился на другой слайд.
JSFiddlle: https://jsfiddle.net/prozik/d7g3wtye/113/