SASS使用CSS3动画并使动画暂停和停止在最后一帧的简单例子
今天在手机上试了试这个 css3 动画效果,可以把动画效果停留在最后一帧上,以及鼠标 :hover 暂停动画,比较实用的功能,不用 JS 也能实现这些效果了。
不过测试体验感觉手机上没有 jQuery 的animate 动画流畅,比较卡,还是没用上,这里把测试结果做个记录!
我这里用到 compass
@import "compass/_css3";
@include keyframes(PanelNavRightToLeft) {
from {
left: 100%;
}
to {
left: 0;
}
}
@include keyframes(PanelNavLeftToRight) {
from {
left: 0;
}
to {
left: 100%;
}
}
#panel-nav {
position: fixed;
top: 0;
left: 100%;
right: 0;
&.show {
@include animation(PanelNavRightToLeft .5s forwards);
}
&.hide {
@include animation(PanelNavLeftToRight .5s forwards);
}
}
上面的代码实现的大致效果是一个 fixed 浮动的层从右往左滑动并固定显示在屏幕上,当点击关闭按钮后再从左往右滑动隐藏掉。
中间需要 JS 配置这是必须的,
当点击展示按钮的时候,给 #panel-nav 加上一个 class
$('#panel-nav').addClass('show');
这样动画就开始啦。。。
然后就是重点重点重点重点,如何在动画执行一遍后停在那儿而不是复原,那样就没意义了,我开始在网上找解决办法,发现很多童鞋还是用 js 来控制css动画停止的,
实际上 animation 中的 fill-mode 参数就能搞定,对应的具体 css 参数是:
.style {
@include animation-fill-mode(forwards);
}
就这样,设置为 forwards 就行了,在最后一帧将会直接停止。
然后我们就可以在关闭按钮上同样操作 class 实现关闭的滑动效果了
$('#panel-nav').removeClass('show').addClass('hide');
另外还有个对桌面鼠标比较有用的动画控制属性,暂停动画:
animation-play-state: paused;
实现鼠标悬浮 :hover 时或者获得焦点 :focus 时暂停动画
#panel-nav {
&:hover {
@include animation-play-state(paused);
}
}
提示:要注意 css 样式设置的顺序哦,避免被覆盖!
@include animation(PanelNavRightToLeft .5s forwards);
// animation-play-state 一定要写在 animation 下面否则会被覆盖无效哦
@include animation-play-state(paused)
大概就这样子啦。。。
SASS使用CSS3动画并使动画暂停和停止在最后一帧的简单例子的更多相关文章
- Android动画(一)-视图动画与帧动画
项目中好久没用过动画了,所以关于动画的知识都忘光了.知识总是不用则忘.正好最近的版本要添加比较炫酷的动画效果,所以也借着这个机会,写博客来整理和总结关于动画的一些知识.也方便自己今后的查阅. Andr ...
- CSS3属性animation-play-state控制动画运行或暂停的技巧
animation-play-state介绍 animation-play-state 属性规定动画正在运行还是暂停. div{ animation-play-state:paused; -webki ...
- css3动画如何解决动画的播放、暂停和重新开始
0921自我总结 css3如何解决动画的播放.暂停和重新开始 一.解决的本质思路 播放的解决思路 先定义好动画效果通过类名的增加达到样式的出现 暂停的解决思路 我们播放动画时,如要暂停动画,就要用到a ...
- css3 移动端旋转动画暂停
音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused; @-webkit-keyframes rotate{ 100% { transform: rota ...
- CSS3动画与JS动画的优缺点?
JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...
- css3中的制作动画小总结
系列教程 CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: Transform 在CSS3中transform主要包括以下几种:旋转rotate. ...
- 前端:css3的过渡与动画
一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果. 2.实现过渡效果的两个要件: 规定把效果添加到那个css属性上. 规定效果时长 定义 ...
- CSS3全览_动画+滤镜
CSS3全览_动画+滤镜 目录 CSS3全览_动画+滤镜 1. 列表和生成的内容 2. 变形 3. 过渡 4. 动画 5. 滤镜, 混合, 裁剪和遮罩 6. 针对特定媒体的样式 作者: https:/ ...
- css3中变形与动画(三)
transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...
随机推荐
- SQL Server 性能调优 之运行计划(Execution Plan)调优
运行计划中的三种 Join 策略 SQL Server 存在三种 Join 策略:Hash Join,Merge Join,Nested Loop Join. Hash Join:用来处理没有排过序/ ...
- python进程池剖析(三)
之前文章对python中进程池的原理.数据流以及应用从代码角度做了简单的剖析,现在让我们回头看看标准库中对进程池的实现都有哪些值得我们学习的地方.我们知道,进程池内部由多个线程互相协作,向客户端提供可 ...
- [转]Windows下搭建PHP开发环境
原文:http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html PHP集成开发环境有很多,如XAMPP.AppServ......只要 ...
- C#:vs2010无法打开vs2012创建的项目
vs低版本打开高版本创建的项目时会提示"选择的文件是解决方案文件,但是用此应用程序的较新版本创建的,无法打开" 解决办法: 写字板打开解决方案sln文件 将其改成你现在用的vs版本 ...
- Mysql 嵌套游标添以及任意位置声明变量的方法
在写存储过程的时候,会遇到某个游标的筛选条件来自于 先前语句运行的结果,比较常见的方式是 再写一个存储过程,通过调用来完成 动态参数的配置, 或者使用 动态sql的功能,而这两种方式都不能很好的解决这 ...
- C#程序的157个建议
编写高质量代码改善C#程序的157个建议——导航开篇 前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展.打个比方,现在已经上线 ...
- C#中一些易混淆概念总结
C#中一些易混淆概念 这几天一直在复习C#基础知识,过程中也发现了自己以前理解不清楚和混淆的概念.现在给大家分享出来我的笔记: 一,.NET平台的重要组成部分都是有哪些 1)FCL (所谓的.NET框 ...
- 把《C语言接口与实现》读薄之第一章:引言
1.1文学程序 文学程序(literate program):接口及其实现的代码与对其进行解释的正文交织在一起.文学程序由英文正文和带标签的程序代码块组成.例如, 〈compute x * y〉≡ s ...
- Asp.Net Web API 导航3
Asp.Net Web API 导航 Asp.Net Web API第一课:入门http://www.cnblogs.com/aehyok/p/3432158.html Asp.Net Web A ...
- C# IE代理操作
public class IPProxy { [System.Runtime.InteropServices.DllImport("wininet.dll", SetLastErr ...