Ответ 1
Вот идея, использующая clip-path
. Трюк состоит в том, чтобы дублировать текст, чтобы иметь два слоя друг над другом с другим цветом текста, затем я раскрываю верхнюю часть, используя clip-path
который я настраиваю с перемещением мыши.
var h =document.querySelector('h1');
var p= h.getBoundingClientRect();
var c= document.querySelector('.cursor');
document.body.onmousemove = function(e) {
/*Adjust the cursor position*/
c.style.left=e.clientX-20+'px';
c.style.top=e.clientY-20+'px';
/*Adjust the clip-path*/
h.style.setProperty('--x',(e.clientX-p.top)+'px');
h.style.setProperty('--y',(e.clientY-p.left)+'px');
}
body {
cursor:none;
}
h1 {
color: #000;
display:inline-block;
margin:50px;
text-align: center;
position:relative;
}
h1:before {
position:absolute;
content:attr(data-text);
color:#fff;
background:#000;
clip-path: circle(20px at var(--x,-40px) var(--y,-40px));
}
.cursor {
position:absolute;
width:40px;
height:40px;
background:#000;
border-radius:50%;
top:-40px;
left:-40px;
z-index:-2;
}
<h1 data-text="WORK">WORK</h1>
<span class="cursor"></span>