博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
skyweaver 手把手教你写css3通用动画
阅读量:5085 次
发布时间:2019-06-13

本文共 4006 字,大约阅读时间需要 13 分钟。

之前接了几个微信里的项目,类似电子邀请函,什么分析报告这样的项目, 对css3动画要求十分高,每个页面客户几乎都有天马行空的想法,或者说设计师有这样的想法。

众所周知css3里的keyframe写好了就不能赋值复用的,  所以怎样能把keyframe通用起来就异常关键了。
好,下面先上几个之前写的项目:(今天sae挂了 ,只好用别人的生产地址),手机打开或者chrome模拟看哦!

 

仔细看你就发现页面的动画有渐显,有飞入,而且可能2者或多者同时存在。

那么问题来了:是不是每个页面的keyframe都得单独写?

在说这个问题之前,你可能得掌握几种常用的水平居中,垂直居中,中心居中;水平偏移,垂直偏移的写法(以下demo效果请chrome模拟手机端打开,-webkit内核哦)。

demo1:postion结合margin:auto 

水平居中
垂直居中
中心居中

 

demo2:postion和translate 一起使用达到水平、垂直居中

水平居中
垂直居中
中心居中

 

好  掌握了以上2个demo的写法和区别后,正在的项目上 ,往往用到的是根据水平中心点,或者垂直中心点偏移的写法,因为手机屏幕大小不一,所以这个写法异常常用。

demo3:中心点偏移

水平 距离偏移
垂直 距离偏移

 

行 掌握后接下来可以为写通用动画作铺垫了(主要是飞入效果)

如果单纯渐显的话,咱们只需要控制opacity 就可以达到了:

水平居中
垂直居中
中心居中

扯了这么多 ,主角来了,就是飞入也分2种写法,一种就是每个飞入效果是一个width:100%;height:100%;的层,然后操作是整个层 translate,XY;但是这样写有一个很不方便就是审查元素的时候,放大镜只能定位到一个层上(多个飞入动画,别的层就给盖住了)

demo如下:

水平居中
垂直居中
中心居中

但是如果换一个写法,就是translate的包裹器里面的节点top和left都写了定值,那么外面动画的包裹器其实是不占文档流的
然后我们只需要操作这个不占文档流的容器就可以了

水平居中
垂直居中
中心居中

最后提一点  如果同时用到渐显和飞入,只需要设置好几个间隔一致的class就能很简单的混合使用了,例如有10个控制渐显的动画,和5个控制飞入的动画

.word_1 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf .5s forwards;}.word_2 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 1.3s forwards;}.word_3 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 2.1s forwards;}.word_4 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 2.9s forwards;}.word_5 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 3.7s forwards;}.word_6 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 4.5s forwards;}.word_7 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 5.3s forwards;}.word_8 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 6.1s forwards;}.word_9 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 6.9s forwards;}.word_10 {    opacity: 0;    -webkit-animation:.8s ease word_1_kf 7.7s forwards;}/********************** 左边动画 start  ********************************/.translateX_animation_left_1 {    -webkit-transform: translateX(-100%);    -webkit-animation: .8s ease translateX_1_left_kf forwards .5s;}.translateX_animation_left_2 {    -webkit-transform: translateX(-100%);    -webkit-animation: .8s ease translateX_1_left_kf forwards 1.3s;}.translateX_animation_left_3 {    -webkit-transform: translateX(-100%);    -webkit-animation: .8s ease translateX_1_left_kf forwards 2.1s;}@-webkit-keyframes translateX_1_left_kf {    0% {        -webkit-transform: translateX(-100%);    }    100% {        -webkit-transform: translateX(0);    }}/********************** 左边动画 end  ********************************//********************** 右边动画 start  ********************************/.translateX_animation_right_1 {    -webkit-transform: translateX(-100%);    -webkit-animation: .8s ease translateX_1_right_kf .5 forwards;}.translateX_animation_right_2 {    -webkit-transform: translateX(100%);    -webkit-animation: .8s ease translateX_1_right_kf forwards 1.3s;}.translateX_animation_right_3 {    -webkit-transform: translateX(100%);    -webkit-animation: .8s ease translateX_1_right_kf forwards 2.1s;}.translateX_animation_right_4 {    -webkit-transform: translateX(100%);    -webkit-animation: .8s ease translateX_1_right_kf forwards 2.9s;}.translateX_animation_right_5 {    -webkit-transform: translateX(100%);    -webkit-animation: .8s ease translateX_1_right_kf forwards 3.7s;}@-webkit-keyframes translateX_1_right_kf {    0% {        -webkit-transform: translateX(100%);    }    100% {        -webkit-transform: translateX(0);    }}/********************** 右边动画 end  ********************************/

 

word_1后可以随意执行  translateX_animation_right_2 或者 translateX_animation_left_2 ,然后word_3神马的。

转载于:https://www.cnblogs.com/Lance--blog/p/4595720.html

你可能感兴趣的文章
vue2.0 关于Vue实例的生命周期
查看>>
jenkins 更换主数据目录
查看>>
Silverlight中恼人的g.i.cs错误
查看>>
SQLite 数据库增删改查
查看>>
<s:iterator>的status
查看>>
C++入门--1.0输入输出
查看>>
让搭建在Github Pages上的Hexo博客可以被Google搜索到
查看>>
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段...
查看>>
在WPF控件上添加Windows窗口式调整大小行为
查看>>
背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
查看>>
打开3389
查看>>
React学习记录
查看>>
nginx常见内部参数,错误总结
查看>>
对象与类
查看>>
《奸的好人2》财色战场----笔记
查看>>
BZOJ 1834网络扩容题解
查看>>
bzoj1878
查看>>
【Vegas原创】Mysql绿色版安装方法
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
分享《去哪儿网》前端笔试题
查看>>