今天在手机上试了试这个 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动画并使动画暂停和停止在最后一帧的简单例子的更多相关文章

  1. Android动画(一)-视图动画与帧动画

    项目中好久没用过动画了,所以关于动画的知识都忘光了.知识总是不用则忘.正好最近的版本要添加比较炫酷的动画效果,所以也借着这个机会,写博客来整理和总结关于动画的一些知识.也方便自己今后的查阅. Andr ...

  2. CSS3属性animation-play-state控制动画运行或暂停的技巧

    animation-play-state介绍 animation-play-state 属性规定动画正在运行还是暂停. div{ animation-play-state:paused; -webki ...

  3. css3动画如何解决动画的播放、暂停和重新开始

    0921自我总结 css3如何解决动画的播放.暂停和重新开始 一.解决的本质思路 播放的解决思路 先定义好动画效果通过类名的增加达到样式的出现 暂停的解决思路 我们播放动画时,如要暂停动画,就要用到a ...

  4. css3 移动端旋转动画暂停

    音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused; @-webkit-keyframes rotate{ 100% { transform: rota ...

  5. CSS3动画与JS动画的优缺点?

    JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...

  6. css3中的制作动画小总结

    系列教程 CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation: Transform 在CSS3中transform主要包括以下几种:旋转rotate. ...

  7. 前端:css3的过渡与动画

    一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果.      2.实现过渡效果的两个要件:    规定把效果添加到那个css属性上.    规定效果时长 定义 ...

  8. CSS3全览_动画+滤镜

    CSS3全览_动画+滤镜 目录 CSS3全览_动画+滤镜 1. 列表和生成的内容 2. 变形 3. 过渡 4. 动画 5. 滤镜, 混合, 裁剪和遮罩 6. 针对特定媒体的样式 作者: https:/ ...

  9. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

随机推荐

  1. SUI Mobile框架开发,android、ios表单遇到的问题

    1.页面添加区域滚动,滚动区域内元素事件无效问题 解决方法: <script type="text/javascript" charset="utf-8" ...

  2. win7 64位下如何安装配置mysql-5.7.7-rc-winx64

    距离上次安装MySQL已经过去好久了.步骤这些,有可能会忘记.简单记录一下吧.(参考了一些网络上的博客.) 1.mysql-5.7.5-m15-winx64.zip下载 官方网站下载地址: http: ...

  3. Javascript多线程引擎(五)

    Javascript多线程引擎(五)之异常处理 C语言没有提供一个像Java一样的异常处理机制, 这就带来了一个问题, 对于一个子函数中发生异常后, 需要在父函数调用子函数的位置进行Check, 如果 ...

  4. Javascript实例技巧精选(8)—计算当月剩余天数

    >>点击这里下载完整html源码<< 截图如下: 利用Javascript在网页上计算当前月份的剩余天数,相应代码如下: <script language="J ...

  5. 【WCF系列二:如何调用WCF服务】WCF入门教程(图文)VS2012

    上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了.小生自认为一个ITer如果想要做的更好,就需要将自己的所学.所用积极分享出来,接收大家的指导和吐槽.网上也有很多WCF相关的教程, ...

  6. iOS基础 - UITableView的数据源和代理

    一.UITableView的代理方法 #pragma mark 每一行的高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtI ...

  7. HttpModule应用

    由做网站操作日志想到的HttpModule应用   背景 在以前的Web项目中,记录用户操作日志,总是在方法里,加一行代码,记录此时用户操作类型与相关信息.该记录日志的方法对原来的业务操作侵入性较强, ...

  8. D0

    刚到长乐就被机房里众大神的气场给压倒了 orz....... 然后默默的感觉到自己貌似已经有一个星期没有打题了...就各种忧伤.... 还是说一下今天的计划吧 嗯傍晚5.30-6.00 &&a ...

  9. Arduino VS. Raspberry Pi VS. Beaglebone Black

    The Arduino is a small Atmel-based microcontroller development board easily integrated into many dif ...

  10. Api 和 Spi

    目录 背景Java类库中的实例如何实现这种结构?备注 背景返回目录 Java 中区分 Api 和 Spi,通俗的讲:Api 和 Spi 都是相对的概念,他们的差别只在语义上,Api 直接被应用开发人员 ...