Я хотів би імітувати світло "сканування", яке відображатиме слова у полі, це вже мій код:
const e = document.getElementsByClassName('scan')[0];
document.onmousemove = function(event){
e.style.left = `${event.clientX}px`;
};
*{
margin: 0;
padding: 0;
}
html, body{
width: 100%;
min-height: 100vh;
overflow-x: hidden;
display: flex;
}
.banner{
width: 100vw;
height: 100vh;
display: flex;
flex-grow: 1;
flex-direction: row;
align-items: center;
background-color: #031321;
}
.banner .scan{
width: 7px;
height: 80%;
position: absolute;
left: 30px;
z-index: 3;
transition: left 50ms ease-out 0s;
border-radius: 15px;
background-color: #fff;
box-shadow:
0 0 15px 5px #fff, /* inner white */
0 0 35px 15px #008cff, /* inner blue */
0 0 350px 20px #0ff; /* outer cyan */
}
.banner .description{
width: 100%;
color: white;
font-size: 3em;
text-align: center;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
<div class="banner">
<div class="scan"></div>
<div class="description">
Just trying something
</div>
</div>
Ідея полягає в тому, щоб показати слова у .description
div відповідно до положення світла сканування. Якщо це можливо, я хотів би використовувати CSS лише для того, щоб зробити цей ефект, і використовувати JavaScript лише для переміщення сканування (яке надалі стане анімацією CSS). Я намагався використати деякі псевдоелементи, але це не спрацювало добре. Ось приклад того, як повинна працювати ця анімація.
clip-path
, особливо тому, що врешті-решт я заховаю лише кілька слів від фрази, тому для цього буде потрібно більше елементів, використовуючи кліп, але все одно дякую! Просто додавши до запитання приклад того, як повинна працювати анімація, це може допомогти.