这是一款jQuery和CSS3计数器动画特效。该计数器动画特效采用bootstrap进行布局,通过简单的CSS代码和js代码,来完成漂亮的计算器动画效果。

使用方法

在页面中引入jquery和bootstrap/font-awesome文件。

<link rel="stylesheet" href="path/to/bootstra.min.css">
<link rel="stylesheet" href="path/to/font-awesome.min.css">
<script src="js/jquery.min.js"></script>
                
HTML结构

该计数器动画特效的HMTL结构如下:

<div class="demo">
    <div class="container">
        <div class="row">
            <div class="col-md-3 col-sm-6">
                <div class="counter">
                    <div class="counter-content">
                        <div class="counter-icon fa fa-globe"></div>
                        <span class="counter-value">89</span>
                    </div>
                    <h3 class="title">Web Design</h3>
                </div>
            </div>
            <div class="col-md-3 col-sm-6">
                <div class="counter red">
                    <div class="counter-content">
                        <div class="counter-icon fa fa-rocket"></div>
                        <span class="counter-value">68</span>
                    </div>
                    <h3 class="title">Web Development</h3>
                </div>
            </div>
        </div>
    </div>
                
CSS样式

然后为该计算器动画特效添加下面的CSS样式。

.counter{
    padding: 20px 0;
    text-align: center;
    position: relative;
}
.counter .counter-content{
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: #fff;
    padding: 30px 0;
    margin: 0 auto 30px;
    z-index: 1;
    position: relative;
    transition: all 0.3s ease 0s;
}
.counter .counter-content:before{
    content: "";
    width: 122%;
    height: 122%;
    border-radius: 50%;
    border: 20px solid #f19f48;
    border-bottom: 20px solid transparent;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}
.counter .counter-content:after{
    content: "";
    border-top: 16px solid #f19f48;
    border-left: 16px solid transparent;
    border-right: 16px solid transparent;
    position: absolute;
    bottom: -14px;
    left: 50%;
    transform: translateX(-50%);
}
.counter .counter-icon{
    display: block;
    font-size: 50px;
    color: #f19f48;
    line-height: 50px;
}
.counter .counter-value{
    font-size: 50px;
    font-weight: 700;
    color: rgba(0,0,0,0.7);
    line-height: 70px;
}
.counter .title{
    display: inline-block;
    padding: 5px 25px;
    background: #f19f48;
    border-radius: 10px;
    font-size: 20px;
    font-weight: 600;
    color: #fff;
    text-transform: capitalize;
    margin: 0;
}
.counter.red .counter-content:before{
    border-color: #ef5f61;
    border-bottom-color: transparent;
}
.counter.red .counter-content:after{ border-top-color: #ef5f61; }
.counter.red .counter-icon{ color: #ef5f61; }
.counter.red .title{ background: #ef5f61; }
.counter.blue .counter-content:before{
    border-color: #4d9fcf;
    border-bottom-color: transparent;
}
.counter.blue .counter-content:after{ border-top-color: #4d9fcf; }
.counter.blue .counter-icon{ color: #4d9fcf; }
.counter.blue .title{ background: #4d9fcf; }
.counter.purple .counter-content:before{
    border-color: #a98ceb;
    border-bottom-color: transparent;
}
.counter.purple .counter-content:after{ border-top-color: #a98ceb; }
.counter.purple .counter-icon{ color: #a98ceb; }
.counter.purple .title{ background: #a98ceb; }
                
JavaScript

最后通过下面的jquery代码来完成计算器数字的动画。

$(document).ready(function(){
    $('.counter-value').each(function(){
        $(this).prop('Counter',0).animate({
            Counter: $(this).text()
        },{
            duration: 3500,
            easing: 'swing',
            step: function (now){
                $(this).text(Math.ceil(now));
            }
        });
    });
});