animation

【魅力CSS】使用CSS3动画制作时钟

倒倒苦水

做完这个小玩意之后, 我觉得, 我一定是闲得蛋疼才做的. 嗯, 一定是的.

话说昨天今天加班, 下午下班前总算把临时变更的需求完成的七七八八了, 昨晚又爬了一趟南山, 累的不行…

想起某个产品说的, 工作累了, 就写写代码, 休息一下 =_=||

好了, 言归正传. 下午偶然看到一个jquery+css3实现的时钟, 挺漂亮的, 突然觉得是不是也可以用纯css3整一个, 于是乎…先看看最终效果

 或者你也可以直接点这里看代码(因为我太喜欢啰嗦啦…)
继续阅读…

【疯狂的菊花系列】用CSS3帧动画实现Loading

一直以来, 本人都认为css3的animation只能实现渐变动画, 比如高度从0渐变到100px这类的. 而无法实现高度从0跳变到50px再跳变到100px这种类似flash的帧动画效果.

但是在看到天才的师姐给的例子之后, 让我愧疚得无地自容, 原来还真有css3帧动画的, T_T. 这个属性是 timing-function: step-end; 而且firefox,webkit,ie10都有支持, 详细介绍可以在这里(https://developer.mozilla.org/en/CSS/timing-function#step-end)看.

跟帧动画有关的timing-function有step-start, step-end, 就那step-end来说, 它的效果是在每一步的结束点, 进行跳变.

比如下面的代码, 这个动画有两步, 如果是用linear方式渐变, 那么在动画的执行过程中, background-position-x的值将从0一直递减到-100%, 你看到的效果就是: 背景图片一直在慢慢的向右(注意, 是向右)移动; 而如果用step-end方式, 则可以看到背景是突然变成 background-position-x: -100%处的. 继续阅读…

【疯狂的菊花系列】全CSS3制作Loading动画

话说上三回, 我们用css3的animation让png图片动起来了.

但是美中不足的是, 还要画一张图片. 如果要求做几个不同大小的菊花, 或者要换个颜色, 又或者要不同的地方用不同的颜色和大小的菊花, 得找到原图(psd之类的)再导出一个不同的size, 个人感觉蛋疼死了.

这次咱们用css3来画那几个点, 让它能大能小能色, 嘿嘿~~(邪恶了).

先看看效果吧, 用鼠标左键狠狠的砸这里.

菊花上有12个点, 我们用12个span标签来做, 宽高使用百分比, 用来自适应外层容器的变化, 圆角设置为100%,就可以保证显示成一个圆了.

接下来的事情就比较痛苦, 需要一个个摆到正确的位置. 但是为了以后的幸福生活哇, 咱也得硬着头皮的上是吧.

好在有了css3的选择器,我们也不用一个个给这些span起名字了,span:nth-child(1)就表示第一个span, nth-child的值是从1开始的,感觉有点怪异.

定位的话用绝对定位, 然后用负的margin把圆心偏移回去, 位置要自己算好, 具体可以看 demo.

css代码我就不贴全了,避免凑字数的嫌疑, 关键代码如下:

.loading{
    width: 50px;
    height: 50px;
}
.loading div{
    position: relative;
    width: 100%;
    height: 100%;
    -webkit-animation: auto-circle 1s linear infinite ;
    -moz-animation: auto-circle 1s linear infinite ;
}
.loading div span{
    display: block;
    background: #04AED9;
    -webkit-border-radius: 100%;
    -moz-border-radius: 100%;
    position: absolute;
}
.loading div span:nth-child(1){
    width: 18%;
    height: 18%;
    left: 50%;
    top: 0%;
    margin-left: -9%;
}
.loading div span:nth-child(2){
    width: 16.5%;
    height: 16.5%;
    top: 15%;
    left: 28%;
    margin-left: -8.25%;
    margin-top: -8.25%;
}
/*:nth-child(3)--> :nth-child(12) */

除了loading的外框, 全部值都是用百分比, 这样12个小点的大小和位置都能随着外框的大小改变而改变了, 连颜色都能随便改, 爽了吧.

后传:

某产品: 这个菊花改成16px的, 那个换成红色的.

苦逼代码男: 32px改成16px是吧, 蓝色换成红色是吧,  嗯, 改完了, 吃饭~~

某产品: …… 

=== 2012-4-4更新 ===
有同学反映, 这个百分比宽度不会算. 其实很简单那的呐:

  1. 先定下最大的那个圆的宽度, 比如这的 第一个, 18%;
  2. 然后这里的菊花有12个瓣, 18 / 12 = 1.5;
  3. 之后第二个第三个就一直从18%往下减就行啦

【疯狂的菊花系列】使用CSS3制作PNG Loading图

Loading图, 也就是俗称的菊花, 大部分网站都会用到, 而一般情况用的都是gif动画, 但是gif能保存的颜色太少, 导致有渐变的图导出来后有毛边, 很不美观.

不过随着html5和css3的出炉, 我们终于可以把loading做的更加美观啦.

之前用png制作loading动画并不是没有, 但是需要使用js以及制作一张包含所有动作的png图片(就像跑马灯一样), 咱不熟ps, 画起来相当吃力.

而在html5/css3的带领下, 我们又有了两个新的方法: canvas和css动画.

但是我是相当讨厌用js代替css本身就可以实现的功能, 而且本人觉得在cavas上画图太累( 这不就是把ps搬到网页么…), 所以就把魔爪伸向了css3, 嘿嘿~~

继续阅读…

 返回顶部