地狱少女
本帖最后由 马黑黑 于 2024-1-23 20:51 编辑 <br /><br /><style>#mydiv { position: relative; margin: -70px 0 0 calc(50% - 561px); width: 960px; height: 600px; background: url('https://638183.freep.cn/638183/t24/jpg/hell0.jpg') no-repeat center/cover; box-shadow: 4px 4px 12px #333; overflow: hidden; cursor:pointer; --x0: 0; }
#mydiv::before { position: absolute; content: ''; width: 100%; height: 100%; background: url('https://638183.freep.cn/638183/t24/jpg/hellgirl.jpg') no-repeat center/cover; mix-blend-mode: luminosity; clip-path: polygon(0 var(--x0), var(--x0) 0, calc(100% - var(--x0)) 0, 100% var(--x0), 100% calc(100% - var(--x0)), calc(100% - var(--x0)) 100%, var(--x0) 100%, 0 calc(100% - var(--x0))); transition: all .6s; }
#mydiv:hover::before { mix-blend-mode: unset; transform: scale(.5) translate(360px,-180px); }
#vid { position: absolute; width: 100%; height: 100%; object-fit: fill; mix-blend-mode: screen; clip-path: polygon(0 0, 80% 0, 100% 20%, 100% 100%, 0 100%); pointer-events: none; }
</style>
<div id="mydiv" title="播放/暂停">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=533063" autoplay loop></audio>
<video id="vid" src="https://img.tukuppt.com/video_show/15653652/01/25/51/62417fd483ea3.mp4" loop></video>
</div>
<script>
(function() {
let step = 1, x0 = 0 , change = true;
let mState = () => aud.paused ? vid.pause() : vid.play();
let clipBg = () => {
if(!change) return;
x0 += step;
if(x0 > 100 || x0 < 0) {
step = -step;
change = false;
setTimeout( () => change = true, 2000);
}
mydiv.style.setProperty('--x0', x0 + '%');
};
mydiv.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', mState, false);
aud.addEventListener('pause', mState, false);
aud.addEventListener('timeupdate', clipBg, false);
})();
</script>
本帖最后由 马黑黑 于 2024-1-23 20:52 编辑
帖子代码
<style>
#mydiv { position: relative; margin: 0 0 0 calc(50% - 561px); width: 960px; height: 600px; background: url('https://638183.freep.cn/638183/t24/jpg/hell0.jpg') no-repeat center/cover; box-shadow: 4px 4px 12px #333; overflow: hidden; cursor:pointer; --x0: 0; }
#mydiv::before { position: absolute; content: ''; width: 100%; height: 100%; background: url('https://638183.freep.cn/638183/t24/jpg/hellgirl.jpg') no-repeat center/cover; mix-blend-mode: luminosity; clip-path: polygon(0 var(--x0), var(--x0) 0, calc(100% - var(--x0)) 0, 100% var(--x0), 100% calc(100% - var(--x0)), calc(100% - var(--x0)) 100%, var(--x0) 100%, 0 calc(100% - var(--x0))); transition: all .6s; }
#mydiv:hover::before { mix-blend-mode: unset; transform: scale(.5) translate(360px,-180px); }
#vid { position: absolute; width: 100%; height: 100%; object-fit: fill; mix-blend-mode: screen; clip-path: polygon(0 0, 80% 0, 100% 20%, 100% 100%, 0 100%); pointer-events: none; }
</style>
<div id="mydiv" title="播放/暂停">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=533063" autoplay loop></audio>
<video id="vid" src="https://img.tukuppt.com/video_show/15653652/01/25/51/62417fd483ea3.mp4" loop></video>
</div>
<script>
(function() {
let step = 1, x0 = 0 , change = true;
let mState = () => aud.paused ? vid.pause() : vid.play();
let clipBg = () => {
if(!change) return;
x0 += step;
if(x0 > 100 || x0 < 0) {
step = -step;
change = false;
setTimeout( () => change = true, 2000);
}
mydiv.style.setProperty('--x0', x0 + '%');
};
mydiv.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', mState, false);
aud.addEventListener('pause', mState, false);
aud.addEventListener('timeupdate', clipBg, false);
})();
</script>
很是奇妙,那轮回中的少女随老鼠位置不同而变幻。{:4_173:} 有意境 这个特效,太神奇太高深了{:4_174:} 黑黑代码音画大师{:4_178:}厉害了 主题有点恐怖{:4_189:} 出类拔萃的特技制作令人拍案叫绝! 纯欣赏!学习不了!{:4_198:} 这个好奇特,用8个点的多边形,竟然能弄出这样的效果来。鼠标 还原颜色和移动位置的设计也很巧妙,可以让小图放在一边自己观赏它的变化了{:4_199:} 视屏的裁剪也有趣,直接切掉了右上角啊。你确定那20%的三角就能切干净?{:4_173:} 最奇特的是小图的x0超过50%后,开始有其他拼块,我去看看这个怎么出来的 随便取了个大于50%的值去画了一下,原来是四条平行线,部分点连线时需要走边线,是行走路径导致的分块吧。这个拼成整图时也有个2秒的暂停,然后才继续的{:4_187:} 切割原来有这么多有趣的表现,那个窗外的4个点的已经觉得挺神奇了,这个更神奇{:4_199:} 发现这个多边形各点的取点顺序很有讲究,好像只有8才有这样对称效果,6和10都不行,当然16估计也行。 这个看点有点让人担心啊,那帅收握一锋利大刀对着女孩……{:4_203:} 这幽深的山林中……背景图挺好的,气氛渲染出来了,黑黑老师是超强大脑{:4_181:} 千羽 发表于 2024-1-23 21:25
这个看点有点让人担心啊,那帅收握一锋利大刀对着女孩……
{:4_170:} 千羽 发表于 2024-1-23 21:29
这幽深的山林中……背景图挺好的,气氛渲染出来了,黑黑老师是超强大脑
音乐就是地狱少女 红影 发表于 2024-1-23 19:52
发现这个多边形各点的取点顺序很有讲究,好像只有8才有这样对称效果,6和10都不行,当然16估计也行。
不论做多少条边的多边形,可以先做一个样子出来,然后找到各点可能的变化规律,再设置算法,用 calc 去实现