CSS 3 Keyframes 把玩

简介: 上周学习了利用 CSS3 来制作页面动画,完成了下载页面动画的开发。入门按照需求要实现“渐显 FadeIn”的效果。最简单的情况下,使用 transition 即可实现效果:transition: opacity 500ms;opacity: 0;/* 修改 opacity 透明度为 1 完全显示 */不过略为麻烦的时候,无论是为元素插入一个 class 新样式还是直接修改元素的 style.opacity = 1;,都必须经过 JavaScript 来控制。

上周学习了利用 CSS3 来制作页面动画,完成了下载页面动画的开发。

入门

按照需求要实现“渐显 FadeIn”的效果。最简单的情况下,使用 transition 即可实现效果:
transition: opacity 500ms;
opacity: 0;/* 修改 opacity 透明度为 1 完全显示 */

不过略为麻烦的时候,无论是为元素插入一个 class 新样式还是直接修改元素的 style.opacity = 1;,都必须经过 JavaScript 来控制。实际上 CSS 可独立完成,无须借助 JS。CSS 3 提供了 keyframe 规则控制以”时间轴”为控制手段的动画机制,有点类似以前的 Flash 时间轴和关键帧概念.

如果利用 keyframe 实现渐显,首先先定义  keyframes 的名称和 from 起始状态和结束状态 to,分别设置透明为 0 和 1。

@-webkit-keyframes fadeIn{
    from {opacity:0;}
    to {opacity:1;}
}

然后在具体那个元素身上指定关键帧名称即可套用效果。

-webkit-animation-name: fadeIn;

动画默认自动执行,但可以延时执行,如下设定所示。

-webkit-animation-delay: 3s;
-webkit-animation-duration:.5s; // 動畫作用時間;
通常伴着随更丰富的其它选项:
-webkit-animation-iteration-count: 1; // 播放次数,默认 1,设置 infinite 则无限播放
-webkit-animation-direction: alternate; // 播放方向
-webkit-animation-fill-mode: forwards; // 完成一次动画后是否再重复,这里 forwards 表示不重复

前面说到动画自动执行,如果不希望自动执行,可设置 -webkit-animation-play-state: paused 暂停,然后修改其为 running 便开始运行动画(通常这步由 JS 触发)。

el.style.webkitAnimationPlayState = "running";

值得一提的是,keyframes 对于 display:none/block 的元素自动实施效果,这样场景切换的时候十分方面,无须开发者额外为这一层逻辑进行编码!

定义关键帧

类似 Flash,CSS3 也有关键帧的概念。例子如下:

@-webkit-keyframes fadeInRight { 
  0% { opacity: 0; -webkit-transform: translateX(0%); }
  100% { opacity: 1; -webkit-transform: translateX(-108%); }
}
@-moz-keyframes fadeInRight { 
  0% { opacity: 0; -moz-transform: translateX(20px); }
  100% { opacity: 1; -moz-transform: translateX(0px); }
}
@-o-keyframes fadeInRight { 
  0% { opacity: 0; -o-transform: translateX(20px); }
  100% { opacity: 1; -o-transform: translateX(0px); }
}
@keyframes fadeInRight { 
  0% { opacity: 0; transform: translateX(20px); }
  100% { opacity: 1; transform: translateX(0px); }
}

.fadeInRight{
	-webkit-animation-name:fadeInRight;
	-moz-animation-name:fadeInRight;
	-o-animation-name:fadeInRight;
	animation-name:fadeInRight;
}

利用 CSS 库

实际上现在看到不少的炫目 H5 页面如这个,都是用 CSS 库快速开发的,自己在 Firebug 复制一个个样式岂不是会累si?Animate.css 是一个流行的库,但直接引用会有冗余的 CSS,于是我想到了 LESS.js。果然是有人整合 Animate.css 到 LESS 了,这下就方便多了。而且还是国人作品,详见这里。(这里有一个更直观的例子,请点击

使用方法,mixin 样式,然后定义 .animation 有关动画的参数(如本文介绍)。

.box{
  .bounceIn(); // 其中动画名还可以设置具体的参数
  .animation(bounceIn 1s linear infinite);
}



目录
相关文章
|
前端开发 JavaScript 内存技术
CSS交互动画指南之keyframes
过去 WEB 需要实现交互动画效果是使用 flash 、javascript、Gif,近年来随着 flash 的淘汰,javascript 和 CSS 功能的增强,使得现代 WEB 应用的交互越来越丰富。借此总结一下 CSS 交互动画实现的基础,关键的知识点是 keyframes ,文章涉及的代码示例效果可以点击查看动画效果。
251 0
|
3月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
3月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
3月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
3月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
3月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
3月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
8月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
328 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
7月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
189 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布