CSS filter 模拟黑洞照片效果
今天被世界上第一张黑洞照片刷屏。
一整天,哪里都是这张照片。看的多了。我就想用css做一个吧。
建议在chrome上查看。
访问地址:http://suohb.com/work/blankHole.html
老规矩,先看效果:

完成这种效果,就需要对图像进行虚化、模糊。
刚好CSS有这个能力。那就是filter。
基本上,filter这个样式有很多选项。这里。我们使用blur就足以满足此次效果。
首先说一下思路。
其实这个做起来相对简单,代码工作只是最少的一部分,想象力到了,代码很快就会实现。
这个效果,按层次来分。一共四层
1、黑洞主体红色主体部分
2、黑洞背景红色虚化部分
3、能量的高亮部分
4、黑洞核心黑色部分。
依次画出几个形状。然后blur就可以了。
下边开始代码实现:
一、先画出主体大致轮廓,我这里上下左右用了4个大小不一圆形 :

然后filter:blur(20px),得到:

这个主体内容就达成了。
二、虚化的红色背景部分。
主体周围杂乱放置一些透明底比较低的红色椭圆。

然后blur(20px)

三、黄色高光样式
使用两个黄色椭圆。里边放两个白色的椭圆。

filter:blur(12px)

四、黑色中心部分,一个黑色的椭圆。blur(13px),效果完成。

整体实现比较简单的。不过,你们想不想看看黑洞的不模糊的真实样子呢?
铛铛铛铛,是不是很可爱。。

更多特效,请关注我们公众号

最后部分,是源代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>黑洞</title>
<style type="text/css">
#box{
position: relative;
width: 200px;
height: 200px;
margin: 100px auto;
}
.red-box{
position: absolute;
left: 50px;
top: 50px;
width: 100px;
height: 100px;
filter: blur(20px);
opacity: .7;
}
.red{
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background: #f00;
}
.yellow-box{
position: absolute;
left: 50px;
top: 50px;
width: 80px;
height: 80px;
filter: blur(12px) brightness(1.1);
animation: move 2s linear infinite;
}
.yellow{
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background: yellow;
}
.white{
position: absolute;
left: 15px;
top: 15px;
width: 46px;
height: 46px;
border-radius: 50%;
background: #FFF;
}
.blank-box{
position: absolute;
left: 70px;
top: 60px;
width: 60px;
height: 60px;
filter: blur(13px);
}
.blank{
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
background: #000;
}
@keyframes move{
0%{
transform: translateX(0)
}
50%{
transform: translateX(3px)
}
100%{
transform: translateX(0)
}
}
</style>
</head>
<body bgcolor="#000000">
<div id="box">
<div class="red-box" style="opacity: .2;">
<div class="red" style="transform: rotate(-45deg) translateY(-150px) scaleX(.5);"></div>
<div class="red" style="transform: rotate(-80deg) translateY(-120px) scaleX(.7);opacity: .6;"></div>
<div class="red" style="transform: rotate(-130deg) translateY(-100px) scaleX(1);opacity: .6;"></div>
<div class="red" style="transform: rotate(-180deg) translateY(-110px) scaleX(1);opacity: .6;"></div>
<div class="red" style="transform: rotate(-230deg) translateY(-120px) scaleX(.8);opacity: .6;"></div>
<div class="red" style="transform: rotate(-280deg) translateY(-130px) scaleX(.4);opacity: .6;"></div>
<div class="red" style="transform: rotate(-340deg) translateY(-110px) scaleX(2);opacity: .8;"></div>
</div>
<div class="red-box" >
<div class="red" style="transform:translateY(-25px) scale(1.25);"></div>
<div class="red" style="transform:translateX(-40px) scale(1.1);"></div>
<div class="red" style="transform:translateY(30px) scale(1.0);"></div>
<div class="red" style="transform:translateX(50px) scale(1.0);"></div>
<div class="red" style="transform: rotate(-45deg) translateY(-120px) scaleX(.4);opacity: .6;"></div>
</div>
<div class="yellow-box">
<div class="yellow" style="transform: rotate(-45deg) scaleX(.5);left:-30px;top:30px;">
<div class="white"></div>
</div>
<div class="yellow" style="transform: rotate(45deg) scaleX(.6) scaleY(1.2);left:40px;top:25px;">
<div class="white"></div>
</div>
</div>
<div class="blank-box">
<div class="blank" style="transform: rotate(14deg) scaleY(1.3) scaleX(1);"></div>
</div>
</div> </div>
</body>
</html>
CSS filter 模拟黑洞照片效果的更多相关文章
- 20个Flutter实例视频教程-第12节: 流式布局 模拟添加照片效果
视频地址: https://www.bilibili.com/video/av39709290/?p=12 博客地址: https://jspang.com/post/flutterDemo.html ...
- CSS filter 有哪些神奇用途
背景 基本概念 CSS filter 属性将模糊或颜色偏移等图形效果应用于元素形成滤镜,滤镜通常用于调整图像,背景和边框的渲染.它的值可以为 filter 函数 <filter-function ...
- CSS 奇思妙想 | 全兼容的毛玻璃效果
通过本文,你能了解到 最基本的使用 CSS backdrop-filter 实现磨砂玻璃(毛玻璃)的效果 在至今不兼容 backdrop-filter 的 firefox 浏览器,如何利用一些技巧性的 ...
- Amazing!!CSS 也能实现烟雾效果?
最近利用 CSS 实现了一些看似超出 CSS 能力的效果: 巧用渐变实现高级感拉满的背景光动画 Amazing!!CSS 也能实现极光? 本文继续此系列,本文主要想探讨一下,使用 CSS 能否比较好的 ...
- CSS中模拟父元素选择器
很多情况下,我们需要找到父元素,但可惜的是css中并没有这样的一个选择器. 至于原因可以看张鑫旭的如何在CSS中实现父选择器效果这篇文章. 简单来说这个实现并不是真正的父元素选择器,只是利用其它思路来 ...
- CSS发光边框文本框效果
7,166 次阅读 ‹ NSH Blog 网页设计 CSS发光边框文本框效果 或许你看过Safari浏览器下,任何输入框都会有一个发光的蓝色边框,这不单纯只是蓝色边框而已,其实包含了许多CSS3技巧知 ...
- 使用CSS实现透明边框的效果——兼容当前各种主流浏览器[xyytIT]
这个效果可是通过代码实现的哦,在不同浏览器下都可以正常显示 对于html中使用CSS实现透明边框的效果,主要有以下四种属性设置方法,但由于 这些属性兼容性并不是很好,单一使用会造成不同浏览器显示效果不 ...
- css3 模拟标牌震荡效果
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- 你想不到的!CSS 实现的各种球体效果【附在线演示】
CSS 可以实现很多你想不到的效果,今天我们来尝试使用 CSS 实现各种球体效果.有两种方法可以实现,第一种是使用大量的元素创建实际的 3D 球体,这种方法有潜在的性能问题:另外一种是使用 CSS3 ...
随机推荐
- Java编程思想读书笔记_第三章
本章提到的关于==的部分,一个完整的实验如下: class Test { public static void main(String[] args) { Integer i = new Intege ...
- FCC 基础JavaScript 练习6
1.对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的, 对象适合用来存储结构化数据,就和真实世界的对象一模一样,比如一只猫. 任务 创建一个叫做myDog的对象,它里 ...
- Javascript DOM 编程艺术(第二版)读书笔记——DOM基础
1.DOM是什么 D=document(文档) O=object(对象) M=Model(模型) DOM又称节点树 一些术语: parent(父) child(子) sibling(兄弟) ...
- 动态调用链接库(dll) 续
20141118 最近一周做了一个关于仓库管理,拣货任务分配的模块,其中涉及到刷卡自动打印领取任务的功能点. 技术点: C#调用C++.delphi的动态链接库.动态链接库的调用方法不同.效果也不相同 ...
- Java:一个简捷的可分页的ResultSet实现
内容 前言 JDBC和分页 和具体数据库相关的实现方法 另一种繁琐的实现方法 使用Vector进行分页 一个新的Pageable接口及其实现 Pageable的使用方法 总结 参考资料 关于作者 前言 ...
- oracle添加联合主键
1 alter table tablename add constraint unionkeyname primary key (column1,column2); 上面语句中: tablename为 ...
- Java 基础入门随笔(9) JavaSE版——文档注释
上节中写了一些static变量以及静态的方法的定义使用以及与非静态的差别,这节补充下: 如果在一个类中所有方法都为静态的,且无成员变量,这时候需要对对应的类进行限制该类无法创建对象,具体操作如下: p ...
- jQuery.treetable使用及异步加载
Usage 1 GitHub 地址 https://github.com/ludo/jquery-treetable/ 2 API 地址 http://ludo.cubicphuse.nl/jquer ...
- 安卓app测试之Monkeyscript
MonkeyScript是一组可以被Monkey识别的命令集合 优点:MonkeyScript可以完成重复固定的操作 使用:adb shell monkey -f <scriptfile> ...
- 计算机网络(四)--全世界最好的TCP基础知识讲解
TCP传输的数据单元是报文段,报文段分为首部.数据两部分 TCP首部 首部的前20字节是固定长度,后面的4n字节根据需要增加的选项 字段解释:图中标示单位为bit,不是byte 1.源端口.目的端口: ...