首页 > 开发 > CSS > 正文

使用CSS时间打点的Loading效果的教程

2024-07-11 08:39:11
字体:
来源:转载
供稿:网友

基于box-shadow实现的打点效果

理论上,box-shadow可以实现任意的图形效果,自然我们可以利用box-shadow生成我们的点效果,然后通过animation控制不同时间点点的数目就可以实现点点点… loading效果了~

您可以狠狠地点击这里:CSS3 animation box-shadow渐进实现打点动画demo

1. 渐进兼容
支持CSS3 animation动画的浏览器显示的就是打点动画效果;对于不支持的浏览器,IE7/IE8显示的是真实的字符…, IE9浏览器虽然也是CSS3生成,但是是静态的,没有动画效果;此乃渐进兼容。

2. 实现原理
首先HTML非常简单,就是一个标签一个类名(标签里面一定要空空如也),其他什么都不需要关心,就可以游刃几乎各种场景,如下:

XML/HTML Code复制内容到剪贴板

订单提交中<span class="dotting"></span>  

上面代码这个类名为dotting的span就是我们所有的玄机所在,页面任意地方,只要有这一小撮HTML就可以有打点动画,与文字混排良好,且颜色自动匹配。例如,本文“标题一”和“标题二”后面的点点点动画就是添加了这么点HTML.

下面是万众瞩目的CSS代码了:

CSS Code复制内容到剪贴板

.dotting {   
    display: inline-block; min-width: 2px; min-height: 2px;   
    box-shadow: 2px 0 currentColor, 6px 0 currentColor, 10px 0 currentColor; /* for IE9+, …, 3个点 */  
    animation: dot 4s infinite step-start both; /* for IE10+, … */  
    *zoom: expression(this.innerHTML = ‘…’); /*  for IE7. 若无需兼容IE7, 此行删除 */  
}   
.dotting:before { content: ‘…’; } /* for IE8. 若无需兼容IE8, 此行以及下一行删除*/  
.dotting::before { content: ”; } /* for IE9+ 覆盖 IE8 */  
:root .dotting { margin-right: 8px; } /* for IE9+,FF,CH,OP,SF 占据空间*/  
  
@keyframes dot {   
    25% { box-shadow: none; }                                  /* 0个点 */  
    50% { box-shadow: 2px 0 currentColor; }                    /* 1个点 */  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表