纯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属性box-shadow使用指南
Dec 09 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
CSS3实现点击放大的动画实例代码
Feb 27 HTML / CSS
html5仿支付宝密码框的实现代码
Sep 06 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
Jun 15 HTML / CSS
详解HTML5中div和section以及article的区别
Jul 14 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
Sep 02 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
使用Html5多媒体实现微信语音功能
Jul 26 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
Jul 26 HTML / CSS
浅析图片上传及canvas压缩的流程
Jun 10 HTML / CSS
AmazeUI图片轮播效果的示例代码
Aug 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
模板引擎正则表达式调试小技巧
2011/07/20 PHP
php中autoload的用法总结
2013/11/08 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php常量详细解析
2015/10/27 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python创建xml文件示例
2017/03/22 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python中加背景音乐如何操作
2020/07/19 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
动物学专业毕业生求职信
2013/10/11 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
2014年老干部工作总结
2014/11/21 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
HttpClient实现文件上传功能
2022/08/14 Java/Android