每日一博 | 徒手用 HTML 生成一朵云,很真的那种
《天边一朵云》是由蔡明亮执导,李康生、陈湘琪领衔主演的剧情电影,情节很文艺,摄影很露骨,属于那种你看了后完全没有撸点的色情片。看完本片后,我很后悔,所以我打算自己用html弄出天边一片云(本句上下文没有任何关联,只有没撸点这方面一样)
云的特点就是模糊,琢磨不定,所以我的入手点就是阴影,让我们开始撸代码,上帝说要有个div,就有了一个div
<div id="cloud-circle"></div>
为了div有个伴,就从div的身体里拆下肋骨,变成了css
body { width: 100vw; height: 100vw; background: cornsilk; padding: 1%; } #cloud-circle { width: 180px; height: 180px; background: coral; border-radius: 50%; box-shadow: 200px 200px 50px 0px #000; }
其实就是画了一个圆,然后用box-shadow加了个阴影,box-shadow的参数说明如下:
其中最后一个参数inset没写,模糊靠的是blur参数。看到的效果如下:
好像和云的形象距离比较远,这时候要svg的filter出场了:
<svg width="0" height="0"> <filter id="filter"> <feTurbulence type="fractalNoise" baseFrequency=".01" numOctaves="10" /> <feDisplacementMap in="SourceGraphic" scale="10" /> </filter> </svg>
在上面的CSS里面加上这个filter
#cloud-circle { width: 180px; height: 180px; background: coral; border-radius: 50%; filter: url(#filter);/*看这里看这里*/ box-shadow: 200px 200px 50px 0px #000; }
看到的效果是这样的
在filter的腐蚀下,cloud-circle这个div的面容变的憔悴了,(女同胞们,用手机摄像头滤镜是没有好下场的!)。这里我们要讲下filter。SVG使用<filter>
元素来定义滤镜。它的滤镜其实有很多,效果各异,具体的内容可以看这里。我们用的是滤镜中的feTurbulence,该滤镜利用Perlin噪声函数创建了一个图像。它实现了人造纹理比如说云纹、大理石纹的合成。看到云纹了没有,我们要的就是它。具体的参数不说了,大家可以自己去这里看,我们主要用SourceGraphic这个参数,这个参数值越大,对图像的腐蚀性越强,我看180这个数字挺吉利,就用它试下:
<feDisplacementMap in="SourceGraphic" scale="10" />
效果如下:
这愁云惨雾的样子就有些象了,但这个背景颜色不对,我这又不是沙城暴,不能是黄色的啊,调成蓝天
background: linear-gradient(165deg, #527785 0%, #7FB4C7 100%);
看,沙城暴过去了,蓝天来了
不过云彩一般是长条的,我们把那个圆形(如果大家还记得这个货最开始一个圆的话)拉长,变成一个长椭圆形。
#cloud-circle { /*拉长width和height的比例*/ width: 500px; height: 275px; background: coral; border-radius: 50%; filter: url(#filter); box-shadow: 200px 200px 50px 0px #000; }
效果就变成这样啦
这两货你侬我侬的,靠的太紧了,桔色这家伙还压在别人黑小姐身上,太不纯洁了,拆散拆散。
#cloud-circle { width: 500px; height: 275px; background: coral; border-radius: 50%; filter: url(#filter); box-shadow: 400px 400px 60px 0px #fff; /* 拉大阴影的位移位置,改变阴影的颜色 */ position: absolute; /* 改成绝对定位 */ top: -320px; /* 向上移一点 */ left: -320px; /* 向左移一点 */ }
于是,猴急的橙色男士被移出了窗口,看不见了,黑小姐变成了白小姐了。
我终于成功的拆散了他们,心情很是舒畅,一朵白云就这么做出来了。但看她单薄的样子,一副二次元的模样,我觉得很不满意,我不是宅男啊,不喜欢纸片人,我要让她有立体感,咋办呢,这时候,要祭出一张原理图,让大家知道我也是有理论知识的。
看,一朵有层次的云其实是真的靠层次来体现的,三层合一就是一朵有白有黑,前凸后翘的立体云了,我们开始撸代码,先来三层云:
<div class="cloud" id="cloud-back"></div> <div class="cloud" id="cloud-mid"></div> <div class="cloud" id="cloud-front"></div>
然后各自拥有自己的filter
<svg width="0" height="0"> <!--Top Layer--> <filter id="filter-back"> <feTurbulence type="fractalNoise" baseFrequency="0.012" numOctaves="4" seed="0" /> <feDisplacementMap in="SourceGraphic" scale="170" /> </filter> <filter id="filter-mid"> <feTurbulence type="fractalNoise" baseFrequency="0.012" numOctaves="2" seed="0"/> <feDisplacementMap in="SourceGraphic" scale="150" /> </filter> <filter id="filter-front"> <feTurbulence type="fractalNoise" baseFrequency="0.012" numOctaves="2" seed="0"/> <feDisplacementMap in="SourceGraphic" scale="100" /> </filter> </svg>
里面主要变化就在SourceGraphic,之前讲过,这个参数越大,腐蚀性越强。另外css也要做下修改:
.cloud { width: 500px; height: 275px; border-radius: 50%; position: absolute; top: -35vh; left: -25vw; } #cloud-back { filter: url(#filter-back); box-shadow: 300px 300px 30px -20px #fff; } #cloud-mid { filter: url(#filter-mid); box-shadow: 300px 340px 70px -60px rgba(158, 168, 179, 0.5); left: -25vw; } #cloud-front { filter: url(#filter-front); box-shadow: 300px 370px 60px -100px rgba(0, 0, 0, 0.3); left: -25vw; }
主要是针对三层云的颜色和阴影大小位置做了些调整,最终的结果就出来了。
一朵怎么看怎么象真的云就出现了。代码大家可以去这里看
最后,如果大家看完了《天边一片云》这部电影,对西瓜这种水果会有全新的认识......
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OSChina 周四乱弹 —— 不能空腹吃早餐
Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @for_ :#今日歌曲推荐# 很好听的钢琴曲,节奏简单,有一点伤感。分享Fabrizio Paterlini的单曲《Veloma》: 《Veloma》- Fabrizio Paterlini 手机党少年们想听歌,请使劲儿戳(这里) 最近夏天, 在减肥中, @浮尘一梦 :看看这是人能说出来的话吗?早晚饭,就早上一杯牛奶燕麦,晚上一杯酸奶燕麦,这还让我少吃点 当时的情景是这样的, “减肥的我和朋友们。” 其实你吃点健康的东西呀, 减肥是健康饮食+运动。 @被猪拱了的JAVA :减肥两个月了快。厨艺是一天天的进步。 第一次从牛排开始。 早餐能随便吃么。 @Daniel-01 :不能空腹吃早餐 真的不能空腹吃东西????? 这个有医学根据的, 有人空腹吃荔枝就得脑炎了 @小鱼丁 :不能空腹吃荔枝吗 @好奇撑死猫 :吃第一个是空腹,第二个就不算空腹了 有道理呀, 就在早起吃早餐的时候, 接了一个电话, @如梦之猿 :大早起的来了一个美国的未接来电,难道我的信息都泄露到国外了!!! @小小编辑:可能是邀请你当总统的电话 如果是的话, 你管管美...
- 下一篇
微软为 Windows Terminal 推出全新 logo
微软已经公布了即将推出的 Windows Terminal 的官方图标。Windows Terminal 是一款全新的、功能强大的命令行终端工具,于上个月在 Build 2019 开发者大会上首次亮相。 推出测试版 Windows Terminal 的工作仍在继续,我们不妨先来看看最新释出的官方图标长什么样: 显然,这一款圆角 logo 继承了微软目前一贯的现代化图标风格,基于 Fluent Design 体系。顺便一提,Fluent Design System(流畅设计体系)是微软在 2017 年的开发者大会上提出的一套全新设计范式,该体系共有五大核心元素,包括Light(光感)、Depth(深度)、Motion(动画)、Material(材质)和 Scale(缩放)。 同时也可以看出,圆角似乎成为了微软 Windows 10 中设计语言的关键部分。 微软非常热衷于使用现代化设计更新其图标集,一个活生生的证明便是 Microsoft Office 系列,该系列的图标已经过数次更改。今年早些时候,Word、PowerPoint 和 Excel 更换了新的图标,而 Publisher 和...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2更换Tomcat为Jetty,小型站点的福音