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

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

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

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

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

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

好在有了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%往下减就行啦
Comments
Write a Comment
  • www.tonitech.com的站长 reply

    真希望有一个loading的图片是一朵菊花在旋转。。。

Tags

css3   魅力CSS   nodejs   loading   CSS   疯狂的菊花   html5   animation   compiler   编译脚本   png   WordPress   智能   旅行   优化   模板   历史记录   跨域   manifest   frame   canvas   动画   js   离线应用   codelet   transform   抽取   java   兼容问题   发布脚本   富文本   那一年在他乡   htaccess   iframe   帧动画   加载速度   intelligent   跨浏览器   DNS解析   插件   checkbox   单边   step-start   vary   复选框   自动更新   转换   文本溢出   盒子阴影   menu   blob   西安   滑动背景   box-shadow   内存占用   键盘事件   python   auto   text overflow   background   所见所得   android   rotate   字节数   合并   文本框   slide   字符串连接符   协议   伪类   兄弟选择符   网格   节点位置比较   空白   斜线拼接   自定义命令   溢出   clock   素描   无法更新   分隔符   字符编码   body   下载文件   精灵图   step   nodej   ubuntu   apache   css3选择器   创建文件   多级菜单   编辑状态   ajax   阴影   垂直   chrome   管道   时钟   firefox   背景   文件上传   createobjecturl   游记   下载   放射渐变   版本号   宽高   照片   localStorage   渐变背景   图片   图片拼接   属性值检测   自动生成   计算   返回键   oauth   合图   reset   调用   cavnas   漏洞   按钮   margin   线性渐变   xsrf   被黑   tab   checked   修复   border   消失   step-end   sprite   common-upload   菜单   兄弟选择器   字符串   svn   九寨沟   缩进   css遮罩   svg   添加系统服务   gzip   插入代码   动态   加速   模拟