家名叫 Looking Glass 的全息显示公司,正在积极推广一种新颖的 3D 图像格式。可知艺术家们能够在广泛使用的 3D 艺术软件上进行制作,并在大多数终端硬件上予以展示。由 Looking Glass 官网演示可知,3D 艺术家们可将其作品转换为这种全息图像格式、并将之轻松嵌入到几乎任何网页上。
官网截图(来自:Holograms on the Internet)
Looking Glass 表示:与普通 2D 屏幕截图相比,被称作“全息图”(holograms)的新格式,允许大家从更多角度来欣赏 3D 艺术作品。
其原理是使用数十张快照来渲染,最终输出为类似立体模型的图像。访客能够滑动鼠标指针、或通过移动设备上的触屏来操纵这些 3D 图像。
Render Once Share to billions(via)
根据分辨率的不同,示例 3D 图像的文件尺寸在 2~50 MB 不等。虽然 Looking Glass 更希望大家在其全息显示器上领略这种新 3D 图像格式,但该技术也兼容普通 PC 显示器、移动设备和 VR 头显。
感兴趣的朋友,可尝试将他们用 Blender、Unity 或 Unreal Engine 制作的内容转换为 Looking Glass 推荐的全息图格式。
后续 Looking Glass 还将很快添加对 C4D、Zbrush、Procreate、nerfies,以及移动肖像模式(mobile portrait mode)等相片格式的转换支持。
如有需要,你可随时将托管于 Looking Glass 服务器上的引用代码,嵌入到网页的 HTML 代码中。其体验类似于嵌入 YouTube 或 Vimeo 视频,而无需在网站上发布 GIF 动图。
展望未来,该公司还计划推出基于全息影像的货币化选项。虽然 Looking Glass 尚未披露具体将如何实现,但我们可以畅想广告、艺术销售、以及格式转换工具等领域。
样先放最终效果图:
动图演示:
一边听歌一边截的动图,所以图片下面有歌词闪过,大家忽视就好。
整个图像其实可以分为三个部分,一是蓝黑色的背景,二是三朵若隐若现的白云,三是这只往前跳的小兔子,背景可以直接在body里设置,因此我们的HTML主题部分就只需要下面两个div:
<div class="rabbit"></div> <div class="clouds"></div>
接着CSS里开始设置样式,先是整体的背景:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(midnightblue, black); font-size: 20px; margin-top: 2em; overflow: hidden; }
引申一点相关知识:上面的CSS代码里display:flex其实是弹性布局,采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
flex布局有以下6个属性:
其中,我们的代码里面用到的justify-content:center定义了项目在主轴上的对齐方式为center。
接下来设置小白兔:
.rabbit { width: 5em; height: 3em; color: whitesmoke; background: radial-gradient( circle at 4.2em 1.4em, #333 0.15em, transparent 0.15em ), /* eye */ currentColor; border-radius: 70% 90% 60% 50%; box-shadow: -0.2em 1em 0 -0.75em #333; z-index: 1; animation: hop 1s linear infinite; }
大体都是一些基础的设置,这里着重介绍一下 animation: hop 1s linear infinite;这句。
animation是CSS3里的一个动画设置,使用上面的代码,将把 animation 绑定到一个hop这个div元素,因此我们需要写一个hop来实现小白兔前后跳动的动画:
@keyframes hop { 20% { transform: rotate(-10deg) translate(1em, -2em); box-shadow: -0.2em 3em 0 -1em #333; } 40% { transform: rotate(10deg) translate(3em, -4em); box-shadow: -0.2em 3.25em 0 -1.1em #333; } 60%, 75% { transform: rotate(0deg) translate(4em, 0); box-shadow: -0.2em 1em 0 -0.75em #333; } }
就这样,我们得到了一个光头往前跳动的小白兔:
其实还挺可爱的~
下面我们给小兔子加上耳朵:
.rabbit::before { content: ''; position: absolute; width: 0.75em; height: 2em; background-color: currentColor; border-radius: 50% 100% 0 0; transform: rotate(-30deg); top: -1em; right: 1em; border: 0.1em solid; border-color: gainsboro transparent transparent gainsboro; box-shadow: -0.5em 0 0 -0.1em; }
加上耳朵后如下:
加上尾巴和影子:
.rabbit::after { content: ''; position: absolute; width: 1em; height: 1em; background-color: currentColor; border-radius: 50%; left: -0.3em; top: 0.5em; box-shadow: 0.5em 1em 0, 4em 1em 0 -0.2em, 4em 1em 0 -0.2em; animation: kick 1s infinite linear; }
最后,给小白兔加上四周的白云:
.clouds { width: 2em; height: 2em; color: whitesmoke; background: currentColor; border-radius: 100% 100% 0 0; transform: translate(0, -5em); animation: cloudy 1s infinite linear forwards; filter: opacity(0); }
云的动画以及细节调整这里就不在赘述了,再来看一张最终效果图:
今天的小练习就到这里啦。
需要完整代码的朋友可以留言或私信我获取。
个 CSS3 loading 动画库,简单易用,动画流畅,无论是学习还是使用,都很不错。
Loaders.css 是一个性能出色的 web 前端代码库,或者叫 CSS 库,因为它完全没有用到一行 js 代码或者图片,仅仅利用纯 CSS 就实现多种样式的 loading 动画,运行流畅丝滑,轻量小巧,性能优秀。
loaders-css 官网
loading 效果预览
loading 动画是前端开发收到的频次很高的需求,特别是前后端分离的开发模式,数据都是异步加载的。以前做 loading 都是一张 菊花.gif 走天下, 但现在产品开发要求变高,咱们的追求也变高了,特别是移动端,显示加载动画前还得加载一个动图,这早就 out 了。
直到发现了 Loaders.css,为这些年来上千次的 loading 实现节省了大量的时间和精力。虽然官方支持 npm 安装和 jQuery 的方式引入,但我更建议面对要求不高的场景,直接复制对应的动画样式即可,不需要引入 CSS,这是极致的按需取用。
使用开发者工具查看代码
面对外观要求的加载场景,我们可以修改 CSS 属性来达到精准定制的要求来符合产品的调性,无论是移动端还是 pc 端都非常好用,而且也是一个很好的 CSS3 动画学习研究对象。
得益于 Loaders.css 毫无依赖\高性能\轻量化\免费开源的特点,开发者们又陆续根据 Loaders.css 构建了用于其他技术平台甚至是 iOS \ android 原生的动画库:
Loaders.css 是一个免费开源的前端 CSS 动画库,基于 MIT 开源协议托管在 Github 上,任何人和商业机构都可以免费下载使用。
Loaders.css 官网在国内访问不太稳定,经常有打不开的情况,大家也可以直接访问 Loaders.css 的 Github 主页获取源码。
关注我,持续分享高质量的免费开源、免费商用的资源。
↓↓点击查看本次分享的网址。
Loaders.css - 纯 CSS 打造的免费开源加载动画,丝滑流畅高性能!|那些免费的砖
*请认真填写需求信息,我们会在24小时内与您取得联系。