Я нашел фрагмент кода, который почти выполняет то, что я хочу, за исключением того, что я хочу, чтобы он был горизонтальным / на основе мыши Y вместо X. Теперь я понимаю, что в js X будет изменен на Y, но я борюсь с вращением divs.
Кроме того, если я хочу нанести на него какой-нибудь текст, как бы я сделал так, чтобы изменение фона сказывалось на цвете текста (поэтому, если текст черный, а половина фона черная, один раз убедитесь, что черный фон накладывает текст, цвет текста меняется на другой или переворачивается, например?
Также я попытался выяснить в js, какая часть определяет скорость реакции мыши, т. Е. Как бы вы сделали так, чтобы смещение цвета не отставало от мыши, но я не мог понять?
https://codepen.io/erutuf/pen/NJLwqV
Haml
#banner-wrapper.banner-wrapper
.banner.design
.banner-content
.banner.dev
.banner-content
* 1013 СКС *
body {
margin: 0;
padding: 0;
.banner-wrapper {
position: relative;
width: 100%;
height: 400px;
overflow: hidden; background:red;
}
.banner {
position: absolute;
overflow: hidden;
&.dev {
margin-left: -500px;
width: calc(50vw + 500px);
.banner-content {
margin-left: 500px; background:black;
}
}
.banner-content {
height: 400px;
}
img {
width: 100vw;
}
}
}
JS
document.addEventListener('DOMContentLoaded', function(){
let banner = document.getElementById('banner-wrapper');
let devLayer = banner.querySelector('.dev');
let delta = 0;
banner.addEventListener('mousemove', function(e){
delta = (e.clientX - window.innerWidth / 2) * 0.5;
devLayer.style.width = e.clientX + 500 + delta + 'px';
});
})