纯css3制作煽动翅膀的蝴蝶的示例


Posted in HTML / CSS onApril 23, 2018

纯css3制作煽动翅膀的蝴蝶,先看效果

纯css3制作煽动翅膀的蝴蝶的示例

怎么样,效果还不错吧

上代码:

html

<div id="butterfly">
    <div class="leftSide"></div>
    <div class="body"></div>
    <div class="rightSide"></div>
</div>

css

body{
            background: url("./images/bg.jpg") no-repeat;
        }
        #butterfly{
            width: 600px;
            height: 500px;
            position: relative;
            transform: scale(0.35);
            transform-style: preserve-3d;
        }
        .leftSide{
            width: 267px;
            height: 421px;
            background: url("./images/leftSide.png") no-repeat;
            position: absolute;
            left: 26px;
            top: 40px;
            animation: left 2s infinite;
            z-index: 9999;
        }
        @keyframes left {
            0%{
                transform: rotateY(0deg);
                transform-origin: right center;
                perspective: 201px;

            }
            50%{
                transform: rotateY(70deg);
                transform-origin: right center;
                perspective: 201px;

            }
            100%{
                transform: rotateY(0deg);
                transform-origin: right center;
                perspective: 201px;
            }
        }
        @keyframes right {
            0%{
                transform: rotateY(0);
                transform-origin: left center;
                perspective: 201px;

            }
            50%{
                transform: rotateY(-70deg);
                transform-origin: left center;
                perspective: 201px;

            }
            100%{
                transform: rotateY(0);
                transform-origin: left center;
                perspective: 201px;

            }
        }
        .body{
            width: 152px;
            height: 328px;
            background: url("./images/body.png") no-repeat;
            position: absolute;
            margin: auto;
            left: 0;
            right: 0;
            bottom: 0;
            top: 0;
            z-index: 9999;
        }
        .rightSide{
            width: 284px;
            height: 460px;
            background: url("./images/rightSide.png") no-repeat;
            position: absolute;
            right: 26px;
            top: 58px;
            animation: right 2s infinite;
            z-index: 9999;
        }

在这之前介绍几个css属性;

@keyframes

  1. 通过 @keyframes 规则,我们能够创建动画
  2. 创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式
  3. 以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。
  4. 0% 是动画的开始时间,100% 动画的结束时间

transform: rotateY()

  1. transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
  2. rotateY()定义沿着 Y 轴的 3D 旋转。

纯css3制作煽动翅膀的蝴蝶的示例

这张图很直观的说明了xyz轴,其实学过3DS MAX这类3d建模软件的同学应该更为熟悉这个3轴的指向。

实现思路:先用子绝父相将左翅膀,右翅膀,和身体进行绝对定位,拼合在一起,然后利用transform的rotateY使其沿y轴旋转,旋转这里使用@keyframe动画,然后重复动作。

还要重点介绍下transform-style: preserve-3d;这个属性,w3c 的说明是 使被转换的子元素保留其 3D 转换。也就是所有子元素在3D空间中呈现,相反设置为flat的话,则所有子元素在2D空间中呈现

demo下载地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3实现可关闭的下拉手风琴菜单效果
Aug 31 HTML / CSS
CSS3中的常用选择器使用示例整理
Jun 13 HTML / CSS
css3实现蒙版弹幕功能
Jun 18 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
Apr 03 HTML / CSS
基于 HTML5 Canvas实现 的交互式地铁线路图
Mar 05 HTML / CSS
html5 兼容IE6结构的实现代码
May 14 HTML / CSS
深入解析HTML5中的Blob对象的使用
Sep 08 HTML / CSS
H5 meta小结(前端必看篇)
Aug 24 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
html5视频常用API接口的实战示例
Mar 20 HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 HTML / CSS
html5移动端禁止长按图片保存的实现
Apr 20 HTML / CSS
CSS3使用transition属性实现过渡效果
Apr 18 #HTML / CSS
CSS3 二级导航菜单的制作的示例
Apr 02 #HTML / CSS
CSS3实现全景图特效示例代码
Mar 26 #HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 #HTML / CSS
巧用CSS3的calc()宽度计算做响应模式布局的方法
Mar 22 #HTML / CSS
利用css3径向渐变做一张优惠券的示例
Mar 22 #HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 #HTML / CSS
You might like
PHP三元运算符的结合性介绍
2012/01/10 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python列表推导式的使用方法
2013/11/21 Python
Python 12306抢火车票脚本
2018/02/07 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
介绍一下UNIX启动过程
2013/11/14 面试题
大学军训感言600字
2014/02/25 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
刑事和解协议书范本
2014/11/19 职场文书
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
2021/04/12 Python
详解Javascript实践中的命令模式
2021/05/05 Javascript
sql字段解析器的实现示例
2021/06/23 SQL Server