海
<style>.sea {
left: -214px;
width: 1024px;
height: 560px;
background: linear-gradient(skyblue,#eee,darkblue);
filter:url(#wave);
clip-path: inset(10px);
overflow: hidden;
position: relative;
}
.cloud {
background: transparent;
border-radius: 20% 50%;
width: 400px;
height: 120px;
left: -30px;
top: -100px;
box-shadow: 140px 120px 60px 20px rgba(255,255,240,.95);
filter: url(#wave);
position: absolute;
}
</style>
<div class="sea">
<div class="cloud"></div>
<div class="cloud" style="transform: translate(375px,-20px) rotate(-10deg);"></div>
</div>
<svg width="0" height="0" style="position: absolute; display: none;">
<filter id="wave">
<feTurbulence type="turbulence" baseFrequency="0.01 .1" numOctaves="1" result="turbulence" seed="50" />
<feDisplacementMap in2="turbulence" in="SourceGraphic" scale="20" xChannelSelector="R" yChannelSelector="B" />
</filter>
</svg>
<script>
let aud = document.createElement('iframe');
aud.src = "https://music.163.com/outchain/player?type=2&id=443895&auto=1&height=66";
aud.style.display = 'none';
document.querySelector('.sea').appendChild(aud);
</script>
看起来跟图片一样,竟然全是代码模拟出来的。非常有真实感,黑黑太棒了{:4_187:} 本帖最后由 马黑黑 于 2022-5-13 13:15 编辑
代码分享:
<style>
.sea {
left: -214px;
width: 1024px;
height: 560px;
background: linear-gradient(skyblue,#eee,darkblue);
filter:url(#wave);
clip-path: inset(10px);
overflow: hidden;
position: relative;
}
.cloud {
background: transparent;
border-radius: 20% 50%;
width: 400px;
height: 120px;
left: -30px;
top: -100px;
box-shadow: 140px 120px 60px 20px rgba(255,255,240,.95);
filter: url(#wave);
position: absolute;
}
</style>
<div class="sea">
<div class="cloud"></div>
<div class="cloud" style="transform: translate(375px,-20px) rotate(-10deg);"></div>
</div>
<svg width="0" height="0" style="position: absolute;">
<filter id="wave">
<feTurbulence type="turbulence" baseFrequency="0.01 .1" numOctaves="1" result="turbulence" seed="50" />
<feDisplacementMap in2="turbulence" in="SourceGraphic" scale="20" xChannelSelector="R" yChannelSelector="B" />
</filter>
</svg>
蓝色的海洋,白云飘飘,黑黑无所不能,css太强大来了 竟然代码出天空大海来,简直逆天了你! 你哪天再代个美女出来(不准用图图)给俺们瞅瞅{:4_170:} 实现原理:
HTML和CSS部分相对简单,不多说,说说svg滤镜。但svg滤镜又非常复杂,所以,只简单说说。
本帖,svg的作用仅在于提供两个滤镜:
其一:feTurburence ,是一个利用柏林噪声算法弄出来的滤镜,作用是令对象无序化,“躁”起来;
其二:feDisplacementMap,位置置换滤镜,用于改变元素和图形等对象的像素位置。
这二货结合起来使用,可以生成逼近鬼斧神工的自然界才会存在的各种纹理等,比如云层、烟雾、大理石和水纹。
然后,svg的滤镜id,看 <filter id="wave"> 这一句,wave 就是 svg滤镜的id了,它要关联到需要运用svg滤镜的元素中,具体做法是在CSS代码中绑定滤镜。本例,两个选择器,.sea 和 .cloud ,都有这一句代码:
filter:url(#wave);
表明它们都使用svg id 为 wave 的滤镜。上方的云层,海洋的波纹,都是借助 svg 滤镜实现的。
最后提示一下:本例中,云层实体元素不可见(背景透明),我们看到的是它的投影,用 box-shadow 属性弄出来的。 樵歌 发表于 2022-5-13 12:59
你哪天再代个美女出来(不准用图图)给俺们瞅瞅
这个有人做过的,效果与当代油画差不多 红影 发表于 2022-5-13 12:47
看起来跟图片一样,竟然全是代码模拟出来的。非常有真实感,黑黑太棒了
CSS在svg加持下能耐更大的 小辣椒 发表于 2022-5-13 12:57
蓝色的海洋,白云飘飘,黑黑无所不能,css太强大来了
感觉有点粗糙呢 樵歌 发表于 2022-5-13 12:58
竟然代码出天空大海来,简直逆天了你!
喝茶喝茶{:4_190:} 马黑黑 发表于 2022-5-13 13:12
感觉有点粗糙呢
这个云应该没有边框的痕迹,边缘有椭圆形的最好,黑黑这个可能有难度吧 小辣椒 发表于 2022-5-13 13:14
这个云应该没有边框的痕迹,边缘有椭圆形的最好,黑黑这个可能有难度吧
我故意弄长了一点,然后没有设置为纯圆。做好我其看了一下天空,西边的云长的和我画的形状很接近。云朵的形状很随机,什么都有。 本帖最后由 加林森 于 2022-5-13 13:32 编辑
哇噻,老黑的这个制作真是逆天了啊。看云好像也在移动,看海好像在漂流。厉害了。{:4_199:} 马黑黑 发表于 2022-5-13 13:17
我故意弄长了一点,然后没有设置为纯圆。做好我其看了一下天空,西边的云长的和我画的形状很接近。云朵的 ...
黑黑真的万能啊。。。佩服S{:4_178:} 马黑黑 发表于 2022-5-13 13:11
CSS在svg加持下能耐更大的
非常超乎想象{:4_199:} 马黑黑 发表于 2022-5-13 13:09
这个有人做过的,效果与当代油画差不多
其它人不管只想你做出来{:4_189:} 马黑黑 发表于 2022-5-13 13:13
喝茶喝茶
喝多了难得跑厕所{:4_189:} 樵歌 发表于 2022-5-13 17:35
喝多了难得跑厕所
尿点是个问题 樵歌 发表于 2022-5-13 17:34
其它人不管只想你做出来
儿童不宜