<img src="https://picsum.photos/id/1069/300/300">
<script>
if (CSS.paintWorklet) { CSS.paintWorklet.addModule('/t_afif/pen/xxdVBaa.js');
}
</script>
@property --f-o{
syntax: '<number>';
inherits: false;
initial-value: 1;
}
img {
-webkit-mask: paint(fragmentation);
--f-o:1;
--f-n:10;
--f-m:10;
transition:--f-o 1s;
}
img:hover {
--f-o:0;
}
body {
background:pink;
}
registerPaint('fragmentation', class {
static get inputProperties() {
return [
'--f-n',
'--f-m',
'--f-o'
]
}
paint(ctx, size, properties) {
const n = properties.get('--f-n');
const m = properties.get('--f-m');
const o = properties.get('--f-o');
const w = size.width/n;
const h = size.height/m;
const l = 10;
for(var i=0;i<n;i++) {
for(var j=0;j<m;j++) {
ctx.fillStyle = 'rgba(0,0,0,'+((Math.random()*(l-1) + 1) - (1-o)*l)+')';
ctx.fillRect(i*w, j*h, w, h);
}
}
}
})
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.