马黑黑 发表于 2024-6-16 16:44

海神

<style>
#papa { margin: 30px 0 30px calc(50% - 593px); width: 1024px; height: 640px; background: url('https://638183.freep.cn/638183/t24/3/hduf.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; overflow: hidden; position: relative; user-select: none; z-index: 1; }
#papa::before, #papa::after { content: ''; position: absolute; width: 100px; height: 100px; background: white; clip-path: polygon(0 0, 0 100%, 100% 100%, 0 0); opacity: .7; }
#papa::before { left: 0; bottom: 0; transition: 2s; }
#papa::after { right: 0; transform: scale(-1, -1); }
#papa:hover::before { bottom: 544px; }
#mypic { position: absolute; width: 200px; right: 5px; top: 5px; cursor: pointer; z-index: 6; animation: rot 6s infinite linear var(--state); }
#vid { position: absolute; bottom: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; pointer-events: none; opacity: .6; }
@keyframes rot { to { transform: rotate(360deg); } }
</style>

<div id="papa">
        <img id="mypic" src="https://638183.freep.cn/638183/t23/btn/dou.png" alt="" title="播放/暂停" />
        <video id="vid" src="https://img.tukuppt.com/video_show/2405811/00/01/97/5b4eac286249a.mp4" autoplay loop muted disablePictureInPicture></video>
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=817876" autoplay loop></audio>
</div>

<script>
let mState = () => {
        papa.style.setProperty('--state', ['running','paused'][+aud.paused]);
        aud.paused ? vid.pause() : vid.play();
}
aud.addEventListener('pause', () => mState());
aud.addEventListener('playing', () => mState());
mypic.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>

马黑黑 发表于 2024-6-16 16:44

帖子代码
<style>
#papa { margin: 30px 0 30px calc(50% - 593px); width: 1024px; height: 640px; background: url('https://638183.freep.cn/638183/t24/3/hduf.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; overflow: hidden; position: relative; user-select: none; z-index: 1; }
#papa::before, #papa::after { content: ''; position: absolute; width: 100px; height: 100px; background: white; clip-path: polygon(0 0, 0 100%, 100% 100%, 0 0); opacity: .7; }
#papa::before { left: 0; bottom: 0; transition: 2s; }
#papa::after { right: 0; transform: scale(-1, -1); }
#papa:hover::before { bottom: 544px; }
#mypic { position: absolute; width: 200px; right: 5px; top: 5px; cursor: pointer; z-index: 6; animation: rot 6s infinite linear var(--state); }
#vid { position: absolute; bottom: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; pointer-events: none; opacity: .6; }
@keyframes rot { to { transform: rotate(360deg); } }
</style>

<div id="papa">
        <img id="mypic" src="https://638183.freep.cn/638183/t23/btn/dou.png" alt="" title="播放/暂停" />
        <video id="vid" src="https://img.tukuppt.com/video_show/2405811/00/01/97/5b4eac286249a.mp4" autoplay loop muted disablePictureInPicture></video>
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=817876" autoplay loop></audio>
</div>

<script>
let mState = () => {
        papa.style.setProperty('--state', ['running','paused'][+aud.paused]);
        aud.paused ? vid.pause() : vid.play();
}
aud.addEventListener('pause', () => mState());
aud.addEventListener('playing', () => mState());
mypic.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>

马黑黑 发表于 2024-6-16 16:45

帖子代码没有什么新内容

起个网名好难 发表于 2024-6-16 17:56

马黑黑 发表于 2024-6-16 16:44
帖子代码

https://5b0988e595225.cdn.sohucs.com/images/20191003/5710185dc09a47da929556db953008b8.gif

南无月 发表于 2024-6-16 18:04

裁出三角形状,
背景为白色,透明度0.7,
一个放左边,一个放右边。
左边的三角形鼠标碰触可以向上移动。。。

南无月 发表于 2024-6-16 18:06

可是两边三角形的呈现透明度怎么不相同呢
左边的跟镜子似的,视频水草清晰可见,
右边的几乎全白看不到透明度,。。
这个没找出来原因,难道只是因为背景颜色深浅不同

南无月 发表于 2024-6-16 18:07

transform: scale(-1, -1);
负值可以反向,又学到一个。。{:4_170:}

愤怒的葡萄 发表于 2024-6-16 18:13

这让我想起了海神这部美国电影。

马黑黑 发表于 2024-6-16 18:33

愤怒的葡萄 发表于 2024-6-16 18:13
这让我想起了海神这部美国电影。

也是说的波塞冬吧

马黑黑 发表于 2024-6-16 18:34

南无月 发表于 2024-6-16 18:07
transform: scale(-1, -1);
负值可以反向,又学到一个。。

这是小妙招,一般人俺不告诉他{:4_170:}

马黑黑 发表于 2024-6-16 18:35

起个网名好难 发表于 2024-6-16 17:56


谬赞了,简简单单的帖子

马黑黑 发表于 2024-6-16 18:36

南无月 发表于 2024-6-16 18:04
裁出三角形状,
背景为白色,透明度0.7,
一个放左边,一个放右边。


{:4_190:}

梦江南 发表于 2024-6-16 18:40

欣赏老师精彩代码音画!{:4_187:}

马黑黑 发表于 2024-6-16 18:43

本帖最后由 马黑黑 于 2024-6-16 20:27 编辑

南无月 发表于 2024-6-16 18:06
可是两边三角形的呈现透明度怎么不相同呢
左边的跟镜子似的,视频水草清晰可见,
右边的几乎全白看不到透 ...
这是三个原理共同作用产生的特效:

(一)视频使用了融合滤镜,multiply,该滤镜下任何颜色与白色复合保持初始颜色,就是说,伪元素背景色纯白,那视频的颜色在融合处是不变的;

(二)伪元素中,::before 沉底,::after 浮于最上层,就是说,如果帖子元素有其他子元素,那么,在不干预 z-index 的情况下,::before 在最下层,::after 在最顶层。故此,右上角的 ::after 不会被融合滤镜混合——融合滤镜只和其底层的对象相混合;

(三)由于伪元素设置有透明度,所以,::before 会一定程度上透出帖子元素的背景,加之前述的融合效果,就产生了镜面一样的特效。

马黑黑 发表于 2024-6-16 19:41

梦江南 发表于 2024-6-16 18:40
欣赏老师精彩代码音画!

{:4_191:}

红影 发表于 2024-6-16 20:10

这两个小三角十分奇妙,也通过这个更了解了融合的效果{:4_199:}

红影 发表于 2024-6-16 20:12

这海神也不好看啊,看着像海妖{:4_196:}

红影 发表于 2024-6-16 20:12

欣赏黑黑好帖{:4_199:}

马黑黑 发表于 2024-6-16 20:26

红影 发表于 2024-6-16 20:12
欣赏黑黑好帖

这个好简单的

马黑黑 发表于 2024-6-16 20:29

红影 发表于 2024-6-16 20:12
这海神也不好看啊,看着像海妖

今天不父亲节吗?你知道波塞冬掌管啥么?马匹{:4_170:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 海神