<section class="road">
<div class="container">
<div class="car"></div>
</div>
</section>
$(window).on('scroll', function() {
car = $('.car');
scrollTop = $(this).scrollTop();
changed = scrollTop - $('.road').outerHeight();
changed2 = (scrollTop - $('.road').outerHeight()) / 5;
var scrollBottomCar = $('.road').height() - car.offset().top - car.outerHeight();
car.css('transform', 'translateY('+changed+'px) translateX(-'+changed2+'px)');
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Scroll Animation</title>
<style>
body {
margin: 0;
padding: 0;
height: 200vh; /* чтобы создать прокрутку */
}
.road {
position: relative;
height: 100vh; /* высота видимой области */
overflow: hidden;
}
.container {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
.car {
width: 50px;
height: 30px;
background-color: red;
position: absolute;
bottom: 0;
transition: transform 0.3s ease-in-out; /* плавный переход */
}
</style>
</head>
<body>
<section class="road">
<div class="container">
<div class="car"></div>
</div>
</section>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$(document).ready(function () {
$(window).on('scroll', function () {
var scrollTop = $(this).scrollTop();
var windowHeight = $(this).height();
var car = $('.car');
var roadHeight = $('.road').outerHeight();
// Проверка, виден ли автомобиль в текущей области видимости
if (scrollTop <= roadHeight && (scrollTop + windowHeight) >= roadHeight) {
// Изменение размера и положения автомобиля
var scale = 1 + (scrollTop / roadHeight); // регулируйте это значение по вашему вкусу
var translateX = -scrollTop / 5; // регулируйте это значение по вашему вкусу
car.css({
'transform': 'translateX(' + translateX + 'px) scale(' + scale + ')'
});
}
});
});
</script>
</body>
</html>