Difuminación de borde, función de gauss (1)
Sun Feb 13 2022 01:49:16 GMT+0000 (UTC)
Saved by
@samn
#html
#css
#javascript
#svg
let box = document.querySelector(".box");
let img1 = document.querySelector(".img1");
const t = img1.getBoundingClientRect();
let bg = img1.querySelector('image');
function moverCursor(e) {
let x = e.pageX - t.left - (t.width / 2);
let y = e.pageY - t.top - (t.height / 2);
img1.style.setProperty(`top`, `${y}px`);
img1.style.setProperty(`left`, `${x}px`);
bg.style.setProperty(`x`, `${-x}px`);
bg.style.setProperty(`y`, `${-y}px`);
}
box.addEventListener("mousemove", moverCursor);
/*CSS*/
.box {
width: 500px;
height: 250px;
border: 2px solid red;
position: relative;
background-image: url(https://picsum.photos/600/250);
overflow: hidden;
}
.img1 {
position: absolute;
}
/*HTML*/
<div class="box">
<svg class="img1" width="150" height="150">
<defs>
<filter id="filter">
<feGaussianBlur stdDeviation="10" />
</filter>
<mask id="mask">
<ellipse cx="50%" cy="50%" rx="40%" ry="40%" fill="white" filter="url(#filter)"></ellipse>
</mask>
</defs>
<image href="https://picsum.photos/500/250" width="500" height="250" mask="url(#mask)"></image>
</svg>
</div>
content_copyCOPY
Estudiar este código tiene cosas interesante.
usamos la función de gauss para difuminar el borde.
LINK: stack overflow mi pregunta, código ejecutable
https://es.stackoverflow.com/questions/514611/c%c3%b3mo-difuminar-el-borde-de-clip-path-en-un-enmascaramiento
Comments