基于box-shadow实现的打点效果
理论上,box-shadow可以实现任意的图形效果,自然我们可以利用box-shadow生成我们的点效果,然后通过animation控制不同时间点点的数目就可以实现点点点… loading效果了~
1. 渐进兼容
支持CSS3 animation动画的浏览器显示的就是打点动画效果;对于不支持的浏览器,IE7/IE8显示的是真实的字符…, IE9浏览器虽然也是CSS3生成,但是是静态的,没有动画效果;此乃渐进兼容。
2. 实现原理
首先HTML非常简单,就是一个标签一个类名(标签里面一定要空空如也),其他什么都不需要关心,就可以游刃几乎各种场景,如下:
XML/HTML Code复制内容到剪贴板
订单提交中<span class="dotting"></span>
上面代码这个类名为dotting的span就是我们所有的玄机所在,页面任意地方,只要有这一小撮HTML就可以有打点动画,与文字混排良好,且颜色自动匹配。例如,本文“标题一”和“标题二”后面的点点点动画就是添加了这么点HTML.
下面是万众瞩目的CSS代码了:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style> dot { display:inline-block; width:3ch; text-indent:-1ch; vertical-align:bottom; overflow:hidden; animation:dot 3s infinite step-start both; } @keyframes dot { 33% { text-indent: 0; } 66% { text-indent: -2ch; } } </style> </head> <body> <a href="javascript:">提交进行中<dot>...</dot></a> </body> </html>