搞定css3的动画(一)

本文首发地址

在html5中,改变是相当大的,尤其是动画了。咱这里只说动画,不说其他元素。
只谈风月,不谈政治。只为帮组学习css动画。
对前端开发来说,CSS动画最令人激动的事情之一是,我们可以非常轻松地使用我们已经熟悉的工具来把它们添加进我们的项目中。如果您已经精通HTML和CSS,您就不需要学习新的语言或插件来为您的项目添加动态效果了。HTML和CSS已经足够,这是一个非常大的加分!无论你只是添加一点点引人注目的设计细节,还是添加非常多的动画,都没有问题。

CSS的transitions属性。我们重点讲CSS动画规范

本文会给你足够的CSS动画入门的内容,足以让你变得更有创造力!

1. @keyframes 定义执行动画

// 这里是写动画定义,这里的[driver]就是动画名称
@keyframes drive {
 //do somthing...
}

在这里就是动画的执行代码,俗话说就是动画开始动画结束、还有就是动画执行过程中的情况了。
看到这里,此时此刻你是否有点想法来代替这种情况。没错就是FromTo也可表示动画开始到动画结束。

@keyframes drive {
    from { transform: translateX(0);}
    to { transform: translateX(400px);}
}

在大多时候这种情况是不能满足我们的需求的,最合适就是用百分比来使用,0%100%这样的使用更合适。
于是乎

@keyframes drive {
    0% {transform: translateX(0);}
    100% {transform: translateX(400px);}
}

如果你乐意还可以多写几个在过程中的比例地址。就看你需求了。这有很大的灵活性可以给关键帧分组,以便以后再查看。

2. 给HTML元素赋值动画animation-name

第一个属性是animation-name,给关键帧动画说明的动画名称

animation-name: GuDian;

第二个属性是animation-duration,给关键帧动画设置动画执行时间

animation-duration: 1s;

第三个属性是animation-timing-function,给关键帧动画设置动画展现形式,默认为:ease

1. ease-in
2. ease-out
3. ease-in-out
animation-timing-function: linear;

第三个属性是animation-iteration-count,给关键帧动画设置重复次数:默认为:1
infinite:定义为一直执行

animation-iteration-count: 1;

第三个属性是animation-fill-mode,给关键帧动画设置最后停留位置,默认为:none

  1. forwards
  2. backwards
animation-fill-mode: both;

3. 创建X轴平移动画

NOTICE:我们在给html元素赋值给的name要记住他的名字,然后开始用@-webkit-keyframes写动画动容

@-webkit-keyframes TransDVD {
    0%{transform: translateX(0);}
    50%{transform: translateX(20px); }
    100%{transform: translateX(300px);}
    }

这里我们设置了他的X轴移动的位置,起始点中点,和终点分别到的位置点。这里的动画名字是TransDVD

4. 创建缩放动画

@-webkit-keyframes TransDVD {
    0%{transform: scale(0);}
    100%{transform: scale(1);}
    }

5. 创建旋转动画

@-webkit-keyframes TransDVD {
    0%{transform: rotate(0deg);}
    100%{transform: rotate(360deg);}
    }

5. 创建组合动画-边旋转和边缩放

@-webkit-keyframes TransDVD{
    0%{transform: rotate(0deg) scale(0.1);}
    100%{transform: rotate(360deg) scale(1);}
    }

NOTICE:申明动画我们可以用一个简单的方式

animation: TransDVD 1s ease-out 0s infinite backwards;
参数说明 `动画名称` `执行时间` `执行方式` `动画延迟时间` `动画重复次数` `最后停留位置`

我的html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css动画</title>
    <style>
    .car {
        background: #000000;
        width: 100px;
        height: 100px;
        animation-name: drive;
        animation-duration: 2s;
        /*动画执行速度*/
        animation-timing-function:linear;
        /*重复次数*/
        animation-iteration-count: infinite;
        /*最后停留位置默认为none*/
        animation-fill-mode: backwards;
    }
    @-webkit-keyframes drive {
        0%{transform: translateX(0);}
        50%{transform: translateX(20px); }
        100%{transform: translateX(300px);}
        /*0% {
            transform: translateX(0px) scale(1);
        }
        100% {
            transform: translateX(200px) scale(1);
        }*/
    }
    
    /*鼓点*/
    .gudian {
        width: 10vw;
        height: 10vw;
        border:100px solid green;
        border-left-color:red;
        border-right-color: black;
        border-top-color: yellow;
        border-radius: 50%;
        left: 0;
        right: 0;
        margin: auto;
        /*动画执行*/
        animation-name: GuDian;
        animation-duration: 1s;
        /*动画执行速度*/
        animation-timing-function: linear;
        /*重复次数*/
        animation-iteration-count: infinite;
    }
    @-webkit-keyframes GuDian {
        /*0%{transform: rotate(0deg);}*/
        /*100%{transform: rotate(360deg);}*/
        0%{transform: scale(0);}
        100%{transform: scale(1);}
    }
    .gudian: Before {
        background: #000000;
        content: " ";
        border-color: #fff000;
    }

    /*灯笼*/
    .DVD {
        width: 10vw;
        height: 10vw;
        border:100px solid #000000;
        border-radius: 50%;
        border-left-color: blue;
        border-right-color: yellow;
        /*动画*/
        /*animation-name: TransDVD;*/
        /*animation-timing-function: linear;*/
        /*animation-duration: 1s;*/
        /*旋转方向 reverse(正) alternate(反)*/
        /*animation-direction: reverse;*/
        /*animation-iteration-count: infinite;*/
        animation: TransDVD 1s ease-out 0s infinite backwards;
    }
    @-webkit-keyframes TransDVD{
        0%{transform: rotate(0deg) scale(0.1);}
        100%{transform: rotate(360deg) scale(1);}
    }



.music {
    width: 174px;
    height: 174px;
    position: absolute;
    left: 400px;
    animation-name: plays,playsUp;
    animation-duration: 1s,0.75s;
    animation-delay: 0s, 1s;
    animation-timing-function: ease-in,linear;
    animation-iteration-count: infinite;
    animation-fill-mode: backwards;
    border-radius: 50%;
    border: 50px solid green;
    border-left-color: blue;
    border-right-color: yellow;

}
@-webkit-keyframes plays{
    0%{transform: translateX(-200px) rotate(0deg);}
    100%{transform: translateX(0px) rotate(360deg);}
}
@-webkit-keyframes playsUp{
    0% {
        transform: scale(1);
        animation-timing-function: ease-in;
    }
    25% {
        transform: scale(1.15);
        animation-timing-function: ease-out;
    }
    60% {
        transform: scale(0.9);
        animation-timing-function: ease-in;
    }
    100% {transform: scale(1);}
}

    </style>
</head>
<body>
    <div class="car"></div>
    <div class="gudian"></div>

    <div class="DVD"></div>
    <div class="music"></div>
</body>
</html>

如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
也可以添加洲洲哥的微信公众号

更多消息

更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送:

这里写图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,461评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,091评论 5 13
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,301评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,730评论 0 2
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    Yiart阅读 3,786评论 3 34