随着css3的流行,现在很多可以使用css3实现的动画效果,基本上就选择css3实现,尤其是在移动端的(移动端对css3的支持度相对比较高,PC端有很多IE8及以下的浏览器拖着后腿呢)。

最近做了一个app活动页面,避嫌就不上页面设计图了,其中有一块是这样的:

一个3月份日历,每天可以点击领取一种奖励(就直接称之为奖励吧),每到新的一天,都要有明显提示,今天是第一次进入当前页面,有奖励可以领取。

我们的设计方案:当天可点击的提示是通过边框不停的闪动实现。通过js获取当天的日期,匹配日历当中的日期,为其添加一个class,从而实现提示可点击状态。

.calendar-table td.onActive:before{
-webkit-animation: borderchg 1s infinite ease-in;
animation: borderchg 1s infinite ease-in;
}

下面就涉及到animation动画的编写了,事实上这个动画很简单,就是使用内阴影模拟的边框,从无到有,再逐渐消失的过程。

@keyframes  borderchg {
100% {
-webkit-box-shadow: inset 0 0 1px 3px #ef4444;
box-shadow: inset 0 0 1px 3px #ef4444;
}
}

工作到这里算是完成了,效果也基本实现了,剩下的就是后面的流程,后台开发,测试,上线的工作了。

可是临到快上线的时候,后台开发人员拿着一款三星的手机,过来跟我说,这个三星手机上没有当天可点击的提示。

翻css,没有找到问题根源,想着就这一款三星的手机,就算了,直接无视他。

晚上上线之后,突然发现,凡是ios8的系统的iPhone手机,也没有这个当天可点击的提示。这就比较坑了,不可能无视这么多的iPhone手机啊。怎么办?

第一想法是换解决方案,可能是box-shadow的问题(然而我并不能确认),反正是html和css的问题,所以换解决方案并不算麻烦,然后我就重新设计了一下当天可点击的提示,通过径向渐变的背景色不断闪现的效果来提示。

@keyframes  borderchg {
100% {
background-image: -webkit-radial-gradient(farthest-corner, rgba(239, 68, 68, 0.8), transparent);
background-image: radial-gradient(farthest-corner, rgba(239, 68, 68, 0.8), transparent);
}
}

浏览器测试没有问题,然后继续线上替换css,发现在ios8系统的iPhone上依然一样,没有提示。

这会真的是懵逼了,不知所措。

后来去网上搜索了一下别人写的css3的animation动画,发现我一直忽视了的一点:keyframes关键帧。

这个也是css3的新添加的,所以很多人在写keyframes的时候,也像其他属性一样添加了前缀-webkit-,此时才想到keyframes是不是应该也有兼容性问题。

ios8 Supported width prefix:-webkit-。就这么个东西,折腾了一个多小时,其实就是思维局限了。

最终还是采用原方案:

@-webkit-keyframes  borderchg {
100% {
-webkit-box-shadow: inset 0 0 1px 3px #ef4444;
box-shadow: inset 0 0 1px 3px #ef4444;
}
}

总算是闹明白问题在哪了,还是兼容性问题,只不过是一直被我潜意识忽略了的keframes的兼容性问题。  

 

css动画animation-keyframes的更多相关文章

  1. amazeui学习笔记--css(常用组件15)--CSS动画Animation

    amazeui学习笔记--css(常用组件15)--CSS动画Animation 一.总结 1.css3动画封装:CSS3 动画封装,浏览器需支持 CSS3 动画. Class 描述 .am-anim ...

  2. css动画-animation各个属性详解(转)

    CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①a ...

  3. CSS动画animation

    transition: 过渡动画transition-property: 属性transition-duration: 间隔transition-timing-function: 曲线transiti ...

  4. 深入理解CSS动画animation

    × 目录 [1]定义 [2]关键帧 [3]动画属性 [4]多值 [5]API 前面的话 transition过渡是通过初始和结束两个状态之间的平滑过渡实现简单动画的:而animation则是通过关键帧 ...

  5. CSS动画 animation与transition

    一.区分容易混淆的几个属性和值 先区分一下css中的几个属性:animation(动画).transition(过渡).transform(变形).translate(移动). CSS3中的trans ...

  6. css动画 animation

    今天用css做了一个简单的三角上下移动的一个小动画,说白了就是在改变该物体的height值.除了这个方法,还可以用js. 一.在用css写动画时,一定要记住兼容性问题.如何解决该兼容性?在前面加内核前 ...

  7. css动画 aniamtion & @keyframes

    MDN-animation文档 animation: [name] [duration] [timing-function] [delay] [iteration-cont] [direction] ...

  8. css 动画animation基本属性(干货)

    /* 动画名称 */ animation-name: cloud; /* 属性定义动画完成一个周期所需要的时间,以秒或毫秒计 */ animation-duration:1s; /* 属性定义动画何时 ...

  9. CSS动画-transition/animation

    HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...

  10. CSS动画效果

    CSS变形效果 Transform translate:平移 translate(x,y) translateX(x) translateY(y)相对于元素原始位置平移. scale:缩放 大于1放大 ...

随机推荐

  1. 编写第一个python selenium-webdriver程序(二)

    上节介绍了如何搭建selenium 系统环境,那么本节来讲一下如何开始编写第一个自动化测试脚本. Selenium2.x 将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里 ...

  2. 使用shell脚本批处理控制大数据环境服务启动停止

    三台集群机器: master   192.168.168.200 slave1     192.168.168.201 slave2     192.168.168.202 1.start-maste ...

  3. 安装plsql developer

    需求:要连接oracle数据库,不想在本地安装oracle,太大,又占内存,所以用plsql developer.. 在网上看了很多博客,妈呀,被毒的不清,一直提示初始化失败,就是那个oci,dll ...

  4. php面向对象编程 父类调用子类编程

    使用父类调用子类的实现代码

  5. Tomcat里面的APR配置问题研究

    这里,之所以研究这个问题,是因为我们的生产系统Linux环境下的tomcat日志里面,启动信息的地方有这么一个WARNING. INFO: The APR based Apache Tomcat Na ...

  6. 排序算法<No.2>【快速排序】

    最近因为项目需要,研究AI相关的东西,主要是算法相关的. 有感触,所以决定,来一个系列的博文,可能会耗时很久,那就是要完成算法系列.起点,从最常用最基本的排序开始.后续会跟进其他类型的,比如树,图等领 ...

  7. fastdfs远程服务器java连接失败的问题

    異常如下: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitFo ...

  8. mysql日常处理

    http://blog.csdn.net/zengxuewen2045/article/details/52349731 https://github.com/enmotplinux/On-Site- ...

  9. 黄聪:wordpress如何获取访问的网站的cookie值

    $head = wp_get_http_headers( $word_url ); $cookie = $head['set-cookie']; $cookie = substr( $cookie, ...

  10. url参数 加密

    加密 url +? btoa(param) 解密 url + ?atob(param)