Смещение изображения в зависимости от положения курсора
Как сделать такой эффект, как на блоке с видео.
Ответы (2 шт):
Автор решения: vantal
→ Ссылка
Это параллакс, гуглите "css parallax background" или смотрите пример с исходным кодом: https://www.rudebox.org.ua/dynamic-background-with-parallax-effect/
Автор решения: Sevastopol'
→ Ссылка
Вот самое простое решение с transform: translate
Ещё больше интересных вариантов с паралакс эффектом можно посмотреть, например, здесь
$('.parallax').on('mousemove', (par) => {
const x = par.pageX / $(window).width();
const y = par.pageY / $(window).height();
$('.img').css(
'transform',
'translate(-' + x * 5 + 'vh, -' + y * 5 + 'vh)'
);
$('.block').css(
'transform',
'translate(' + x * 10 + 'px, ' + y * 10 + 'px)'
);
});
* {
margin: 0;
padding: 0;
}
.parallax {
position: relative;
overflow: hidden;
width: 100%;
height: 100vh;
}
.img {
position: absolute;
top: -10vh;
left: -10%;
width: 120%;
height: 140vh;
background-image: url(https://avatars.mds.yandex.net/get-pdb/2885306/2f870555-70c0-4780-a7ab-084b0b5d9be8/s1200?webp=false);
background-position: center center;
background-size: cover;
}
.block {
position: absolute;
top: 50%;
left: 50%;
width: 150px;
height: 150px;
margin-top: -75px;
margin-left: -75px;
background-image: url(https://3.bp.blogspot.com/-mgQuAR5nNRg/WjfZr2hedVI/AAAAAAAAA3Q/h1Rj_QbN1E4wTZWu4OOOVFplNkWdNgpfACLcBGAs/s640/Terran1.png);
background-position: center center;
background-size: cover;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parallax">
<div class="img"></div>
<div class="block"></div>
</div>