激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合

0712-2888027 189-8648-0214
微信公眾號

孝感風信網絡科技有限公司微信公眾號

當前位置:主頁 > 技術支持 > HTML5/CSS3 > 詳解用CSS3制作圓形滾動進度條動畫效果

詳解用CSS3制作圓形滾動進度條動畫效果

時間:2016-02-19來源:風信官網 點擊: 1927次

今天手把手教大家用CSS3制作圓形滾動進度條動畫,想不會都難!那么,到底是什么東東呢?先不急,之前我分享了一個css實現進度條效果的博客 《 CSS實現進度條和訂單進度條 》, 但是呢,那篇博客只是制作出來效果而已,并沒有動畫效果,因為當時正期末復習期間,所以就省了制作動畫的時間成本。所以,今天就一起把各種效果都實現吧!

先看一下效果圖,會提升我們的學習興趣喲:

詳解用CSS3制作圓形滾動進度條動畫效果

好的,我將按照此圖從上到下的順序講解,由于第一和第二種效果之氣那篇博客《 CSS實現進度條和訂單進度條 》已經介紹過怎么做的了,這里就把重心放在動畫上面, 對于圓形效果是重點,我將詳細講解。

第一種效果:

html結構:

<div id="progress">
      <span></span>
</div>

css樣式:

    #progress{
  width: 50%;
  height: 30px;
  border:1px solid #ccc;
  border-radius: 15px;
  margin: 50px 0 0 100px;
  overflow: hidden;
  box-shadow: 0 0 5px 0px #ddd inset;
}
#progress span {
  display: inline-block;
  width: 100%;
  height: 100%;
  background: #2989d8; /* Old browsers */
  background: -moz-linear-gradient(45deg, #2989d8 33%, #7db9e8 34%, #7db9e8 59%, #2989d8 60%); /* FF3.6+ */
  background: -webkit-gradient(linear, left bottom, right top, color-stop(33%,#2989d8), color-stop(34%,#7db9e8), color-stop(59%,#7db9e8), color-stop(60%,#2989d8)); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%); /* Opera 11.10+ */
  background: -ms-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%); /* IE10+ */
  background: linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2989d8', endColorstr='#2989d8',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
  background-size: 60px 30px;
  text-align: center;
  color:#fff;
  -webkit-animation:load 3s ease-in;
}
@-webkit-keyframes load{
  0%{
    width: 0%;
  }
  100%{
    width:100%;
  }
}

可以看到其實這種進度條的動畫是最容易實現的,根據具體進度百分比設置默認的width百分比和動畫里100%處的width百分比就行了,比如說,我想實現70%的進度條動畫效果,那么我只需要修改一下兩處地方:

#progress span{
  width: 70%;
}
@-webkit-keyframes load{
    0%{
    width: 0%;
    }
  100%{
    width:70%;
    }
}

第二種效果:

html結構:

<div id="progressBar">
     <!-- 進度條 -->
     <div>
       <span></span>
     </div>
     <!-- 五個圓 -->
     <span></span>
     <span></span>
     <span></span>
     <span></span>
     <span></span>
</div>

css樣式:

     #progressBar{
  width: 80%;
  height: 50px;
  position: relative;
  margin: 50px 0 0 100px;
}
#progressBar div{
  width: 100%;
  height: 10px;
  position: absolute;
  top:50%;
  left: 0;
  margin-top:-20px;
  background: #ccc;
}
#progressBar div span{
  position: absolute;
  display: inline-block;
  background: green;
  height: 10px;
  width: 100%;
  -webkit-animation:bgLoad 5.5s linear;
}
@-webkit-keyframes bgLoad{
  0%{
    width: 0%;
  }
  18.18%,27.27%{
    width:25%;
  }
  45.45%,54.54%{
    width: 50%;
  }
  72.72%,81.81%{
    width: 75%;
  }
  100%{
    width:100%;
  }
}
#progressBar>span{
  position: absolute;
  top:0;
  margin-top: -10px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #ccc;
  margin-left: -20px;
  color:#fff;
}
@-webkit-keyframes circleLoad_1{
  0%,66.66%{
    background: #ccc;
  }
  100%{
    background:green;
  }
}
@-webkit-keyframes circleLoad_2{
  0%,83.34%{
    background: #ccc;
  }
  100%{
    background:green;
  }
}
@-webkit-keyframes circleLoad_3{
  0%,88.88%{
    background: #ccc;
  }
  100%{
    background:green;
  }
}
@-webkit-keyframes circleLoad_4{
  0%,91.67%{
    background: #ccc;
  }
  100%{
    background:green;
  }
}
#progressBar span:nth-child(2){
  left: 0%;background:green;
}
#progressBar span:nth-child(3){
  left: 25%;background:green;
  -webkit-animation:circleLoad_1 1.5s ease-in;
}
#progressBar span:nth-child(4){
  left: 50%;background:green;
  -webkit-animation:circleLoad_2 3s ease-in;
}
#progressBar span:nth-child(5){
  left: 75%;background:green;
  -webkit-animation:circleLoad_3 4.5s ease-in;
}
#progressBar span:nth-child(6){
  left: 100%;background:green;
  -webkit-animation:circleLoad_4 6s ease-in;
}

可以看到,其實對于動畫本身是很簡單的,一看就明白了, 主要就是動畫持續時間的計算 ,由于這個動畫效果只執行一次,所以其實也可以用動畫延遲時間來保證各個動畫在指定的時間點開始執行,但是對于循環或者多次動畫效果,延遲很不靈活,所以這里還是用持續時間的長短來控制動畫的執行時間。

這個訂單進度條,我是設置了走一段用時1秒,然后每到一個圓點就停頓0.5秒,而這0.5秒就是相對應的圓點的動畫持續執行時間。但是 再次強調這個是單次動畫 ,如果想實現循環動畫,還是得做調整的,必須讓所有動畫的持續執行時間是一樣的,不然循環起來就錯亂的。而時間的改動也會影響動畫關鍵幀的改動, 下面對第一小段和第二個圓的動畫時間講解一下

首先,細長條的動畫持續時間通過計算:

4小段x1秒 + 中間3個圓點 x 0.5秒 = 5.5秒

接下來就是計算細長條動畫關鍵幀的時間分配,設每一份0.5秒,那么共總就是11份,每小段得2份,每個圓點得1份,用100%除以11,可得每份大約是9.09%,接下來就是分配時間了,這個就簡單了,不多說。

接著,當細長條完成第一小段的動畫效果到達第二個圓點時,會停頓0.5秒,而這0.5秒就是第二個圓點的動畫時間,所以第二個圓點的動畫持續時間就是:

等待細長條執行完1小段 x1秒+自身的動畫完成時間x0.5秒=1.5秒

同樣的方法計算每一份的時間然后進行分配。 同理,其他動畫效果相似,就不再贅述了。

第三種效果:

今天就重點講解這個效果,首先,當有人說你能不能做一個圓形進度條效果出來時,如果是靜態完整圓形進度條,那么就很簡單了:

.circleprogress{
    width: 160px;
    height: 160px;
    border:20px solid red;
    border-radius: 50%;
}

詳解用CSS3制作圓形滾動進度條動畫效果

然后就會說,這很簡單嘛。但是如果不是完整圓形的呢?想了想:

.circleprogress{
  width: 160px;
  height: 160px;
  border:20px solid red;
  border-left:20px solid transparent;
  border-bottom:20px solid transparent;
  border-radius: 50%;
}

詳解用CSS3制作圓形滾動進度條動畫效果

然后還是會說,這個也不難啦。可是,如果不是剛好都是45度的倍數呢?

OK,我們先設置一個200x200的方塊,然后我們在這里面完成我們的效果:

.circleProgress_wrapper{
  width: 200px;
  height: 200px;
  margin: 50px auto;
  position: relative;
  border:1px solid #ddd;
}

詳解用CSS3制作圓形滾動進度條動畫效果

接下來我將在這個容器里再放兩個矩形,每個矩形都占一半:

<div class="circleProgress_wrapper">
        <div class="wrapper right">
            <div class="circleProgress rightcircle"></div>
        </div>
        <div class="wrapper left">
            <div class="circleProgress leftcircle"></div>
        </div>
 </div>
.wrapper{
  width: 100px;
  height: 200px;
  position: absolute;
  top:0;
  overflow: hidden;
}
.right{
  right:0;
}
.left{
  left:0;
}

詳解用CSS3制作圓形滾動進度條動畫效果

這里重點說一下.wrapper 的overflow:hidden; 起著關鍵性作用。這兩個矩形都設置了溢出隱藏,那么當我們去旋轉矩形里面的圓形的時候,溢出部分就被隱藏掉了,這樣我們就可以達到我們想要的效果。

從html結構也已看到,在左右矩形里面還會各自有一個圓形,先講一下右半圓:

.circleProgress{
  width: 160px;
  height: 160px;
  border:20px solid transparent;
  border-radius: 50%;
  position: absolute;
  top:0;
}
.rightcircle{
  border-top:20px solid green;
  border-right:20px solid green;
  right:0;
}

詳解用CSS3制作圓形滾動進度條動畫效果

可以看到,效果已經出來了,其實本來是一個半圓弧,但由于我們設置了上邊框和右邊框,所以上邊框有一半溢出而被隱藏了,所以我們可以通過旋轉得以還原:

.circleProgress{
  width: 160px;
  height: 160px;
  border:20px solid transparent;
  border-radius: 50%;
  position: absolute;
  top:0;
  -webkit-transform: rotate(45deg);
}

詳解用CSS3制作圓形滾動進度條動畫效果

所以只要旋轉自己想要的角度就可以實現任意比例的進度條。接下來把左半圓弧也實現,變成一個全圓:

.leftcircle{
    border-bottom:20px solid green;
    border-left:20px solid green;
    left:0;
}

詳解用CSS3制作圓形滾動進度條動畫效果

緊接著,就是讓它動起來,原理是這樣的, 先讓右半圓弧旋轉180度,再讓左半圓弧旋轉180度 ,這樣,兩個半圓弧由于先后都全部溢出而消失了,所以看起來就是進度條再滾動的效果:

    .rightcircle{
  border-top:20px solid green;
  border-right:20px solid green;
  right:0;
  -webkit-animation: circleProgressLoad_right 5s linear infinite;
}
.leftcircle{
  border-bottom:20px solid green;
  border-left:20px solid green;
  left:0;
  -webkit-animation: circleProgressLoad_left 5s linear infinite;
}
@-webkit-keyframes circleProgressLoad_right{
  0%{
    -webkit-transform: rotate(45deg);
  }
  50%,100%{
    -webkit-transform: rotate(225deg);
  }
}
@-webkit-keyframes circleProgressLoad_left{
  0%,50%{
    -webkit-transform: rotate(45deg);
  }
  100%{
    -webkit-transform: rotate(225deg);
  }
}

詳解用CSS3制作圓形滾動進度條動畫效果

當然,我們只需要調整一下角度就可以實現反向的效果:

    .circleProgress{
  width: 160px;
  height: 160px;
  border:20px solid transparent;
  border-radius: 50%;
  position: absolute;
  top:0;
  -webkit-transform: rotate(-135deg);
}
@-webkit-keyframes circleProgressLoad_right{
  0%{
    -webkit-transform: rotate(-135deg);
  }
  50%,100%{
    -webkit-transform: rotate(45deg);
  }
}
@-webkit-keyframes circleProgressLoad_left{
  0%,50%{
    -webkit-transform: rotate(-135deg);
  }
  100%{
    -webkit-transform: rotate(45deg);
  }
}

詳解用CSS3制作圓形滾動進度條動畫效果

好的,接下來就是奔向最終效果了,正如我們一開始看到的那樣,有點像我們使用360衛士清理垃圾時的類似效果,當然不是很像啦:

    .circleProgress_wrapper{
  width: 200px;
  height: 200px;
  margin: 50px auto;
  position: relative;
  border:1px solid #ddd;
}
.wrapper{
  width: 100px;
  height: 200px;
  position: absolute;
  top:0;
  overflow: hidden;
}
.right{
  right:0;
}
.left{
  left:0;
}
.circleProgress{
  width: 160px;
  height: 160px;
  border:20px solid rgb(232, 232, 12);
  border-radius: 50%;
  position: absolute;
  top:0;
  -webkit-transform: rotate(45deg);
}
.rightcircle{
  border-top:20px solid green;
  border-right:20px solid green;
  right:0;
  -webkit-animation: circleProgressLoad_right 5s linear infinite;
}
.leftcircle{
  border-bottom:20px solid green;
  border-left:20px solid green;
  left:0;
  -webkit-animation: circleProgressLoad_left 5s linear infinite;
}
@-webkit-keyframes circleProgressLoad_right{
  0%{
    border-top:20px solid #ED1A1A;
    border-right:20px solid #ED1A1A;
    -webkit-transform: rotate(45deg);
  }
  50%{
    border-top:20px solid rgb(232, 232, 12);
    border-right:20px solid rgb(232, 232, 12);
    border-left:20px solid rgb(81, 197, 81);
    border-bottom:20px solid rgb(81, 197, 81);
    -webkit-transform: rotate(225deg);
  }
  100%{
    border-left:20px solid green;
    border-bottom:20px solid green;
    -webkit-transform: rotate(225deg);
  }
}
@-webkit-keyframes circleProgressLoad_left{
  0%{
    border-bottom:20px solid #ED1A1A;
    border-left:20px solid #ED1A1A;
    -webkit-transform: rotate(45deg);
  }
  50%{
    border-bottom:20px solid rgb(232, 232, 12);
    border-left:20px solid rgb(232, 232, 12);
    border-top:20px solid rgb(81, 197, 81);
    border-right:20px solid rgb(81, 197, 81);
    -webkit-transform: rotate(45deg);
  }
  100%{
    border-top:20px solid green;
    border-right:20px solid green;
    border-bottom:20px solid green;
    border-left:20px solid green;
    -webkit-transform: rotate(225deg);
  }
}

可以看到,其實就是多了一些改變不同邊框顏色的動畫而已,這個就給大家自己去實踐吧! 主要還是利用兩個矩形來完成這么一個圓形進度條效果,特別注意overflow這條規則,起著關鍵作用。

欄目列表
推薦內容
熱點內容
展開
激情五月婷婷综合网_奇米精品一区二区三区四区_91在线码无精品_国产精品久久久久一区二区三区_日韩一区二区在线看_99国产欧美另类久久久精品_日韩电影免费一区_亚洲欧美在线另类_9色porny自拍视频一区二区_久久一区二区三区四区_日本在线不卡视频_欧美日韩三级一区二区_亚洲欧美日韩国产综合在线_国产精品影视网_欧美中文字幕一区_制服.丝袜.亚洲.中文.综合
国产成人综合网| 亚洲福利视频三区| 亚洲色图第一区| 日本va欧美va瓶| 色综合中文字幕| 日韩美女视频一区二区在线观看| 国产精品入口麻豆九色| 蜜桃av一区二区三区电影| 国内一区二区在线| 在线观看91精品国产入口| 日本一区二区免费在线| 人禽交欧美网站| 成人av一区二区三区| 久久综合久久99| 性做久久久久久免费观看| 丰满少妇久久久久久久| 91精品国产色综合久久久蜜香臀| 国产精品日韩成人| 麻豆精品一二三| 91国产免费观看| 国产区在线观看成人精品| 午夜精品一区二区三区电影天堂 | 韩日精品视频一区| 在线观看亚洲专区| 国产精品情趣视频| 国产在线视视频有精品| 欧美无砖砖区免费| 国产精品青草综合久久久久99| 久久精品99国产精品日本| 欧洲av一区二区嗯嗯嗯啊| 国产欧美一区二区精品忘忧草| 日本vs亚洲vs韩国一区三区| 欧美中文字幕不卡| 国产精品第一页第二页第三页| 精久久久久久久久久久| 欧美日韩国产经典色站一区二区三区 | 91精品国产麻豆国产自产在线| 亚洲欧美成人一区二区三区| 麻豆成人在线观看| 欧美日韩大陆一区二区| 亚洲免费伊人电影| 国产在线不卡视频| 日韩欧美激情四射| 丝瓜av网站精品一区二区| 色爱区综合激月婷婷| 中文字幕一区二区5566日韩| 国产福利一区二区| 2023国产一二三区日本精品2022| 日韩不卡手机在线v区| 欧美三级电影在线看| 一区二区三区在线视频观看| 99热这里都是精品| 国产精品美女久久福利网站 | 91视频一区二区| 中文一区二区完整视频在线观看| 韩日精品视频一区| 久久久精品免费网站| 国产一区二区调教| 久久综合色播五月| 狠狠色丁香久久婷婷综合_中 | 国产偷国产偷亚洲高清人白洁| 蜜桃视频一区二区| 欧美大片国产精品| 久久激情综合网| 欧美不卡在线视频| 久久不见久久见免费视频1| 日韩视频在线你懂得| 人人狠狠综合久久亚洲| 在线综合视频播放| 美女国产一区二区三区| 精品欧美一区二区在线观看| 精品一区二区免费在线观看| 日韩精品中文字幕一区| 国内精品写真在线观看| 久久女同精品一区二区| 国产成人免费视频网站| 国产精品成人一区二区艾草| 91麻豆123| 亚洲v中文字幕| 91精品国产手机| 国产综合色在线| 亚洲国产成人私人影院tom| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 91精品久久久久久久91蜜桃| 石原莉奈在线亚洲三区| 日韩一级片在线观看| 韩国精品久久久| 欧美激情自拍偷拍| 91影院在线观看| 亚洲成人精品一区| 日韩你懂的电影在线观看| 国产在线精品一区二区夜色| 26uuu亚洲| 99久久综合狠狠综合久久| 一区二区三区成人| 欧美一区二区视频免费观看| 精品一区二区三区欧美| 国产精品人妖ts系列视频| 在线一区二区三区四区| 男女激情视频一区| 欧美国产日韩在线观看| 91视视频在线观看入口直接观看www | 国产精品一区二区在线观看网站| 久久毛片高清国产| 91色.com| 五月婷婷激情综合网| 久久久久久一二三区| 91视视频在线观看入口直接观看www| 亚洲成人动漫精品| 久久一夜天堂av一区二区三区| www.综合网.com| 亚洲福利电影网| 久久久久九九视频| 在线一区二区观看| 久久成人久久爱| 欧美久久一区二区| 国产精品综合二区| 亚洲精品高清在线| 精品裸体舞一区二区三区| 不卡一区二区中文字幕| 亚洲国产精品精华液网站| 亚洲精品在线电影| 色婷婷亚洲精品| 久久av老司机精品网站导航| 中文字幕一区二区三区四区不卡 | 日韩高清国产一区在线| 国产农村妇女精品| 欧美日韩午夜精品| 国产伦理精品不卡| 亚洲国产日日夜夜| 欧美国产日韩精品免费观看| 欧美麻豆精品久久久久久| 懂色av一区二区三区免费看| 午夜精品视频在线观看| 国产午夜亚洲精品羞羞网站| 欧美三级欧美一级| jlzzjlzz欧美大全| 久久99精品国产.久久久久久| 一区二区三区在线免费播放| 亚洲精品在线三区| 欧美日韩久久久久久| 成人国产精品视频| 麻豆精品视频在线观看免费 | 激情五月播播久久久精品| 亚洲乱码中文字幕| 久久久亚洲综合| 69p69国产精品| 97久久精品人人做人人爽50路| 麻豆一区二区在线| 一区二区三区在线观看国产| 久久久www成人免费无遮挡大片| 欧美日韩1区2区| 91日韩精品一区| 国产suv精品一区二区883| 男女男精品网站| 亚洲成人av电影在线| 最近中文字幕一区二区三区| 2021国产精品久久精品| 在线播放91灌醉迷j高跟美女| 91亚洲国产成人精品一区二三| 国产一区二区三区高清播放| 日韩av电影一区| 亚洲蜜桃精久久久久久久| 国产三级精品视频| 精品日韩99亚洲| 91麻豆精品国产91久久久久久| 91久久人澡人人添人人爽欧美| 成人在线视频一区| 国产老女人精品毛片久久| 奇米影视一区二区三区| 亚洲成av人影院| 亚洲综合偷拍欧美一区色| 中文字幕字幕中文在线中不卡视频| 国产网站一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 777午夜精品视频在线播放| 91国产精品成人| 91色九色蝌蚪| 91女厕偷拍女厕偷拍高清| www.日韩在线| 丰满白嫩尤物一区二区| 国内精品免费**视频| 美女视频黄 久久| 男人的j进女人的j一区| 日本中文字幕一区| 日韩综合一区二区| 日韩电影在线一区| 日韩av成人高清| 日本不卡视频一二三区| 日韩精品乱码av一区二区| 日日夜夜精品视频免费| 日日夜夜精品视频天天综合网| 视频在线在亚洲| 日韩高清国产一区在线| 日韩激情视频网站| 青娱乐精品视频在线| 一区二区三区产品免费精品久久75| 亚洲精品一二三| 亚洲永久精品国产| 亚洲第一福利一区|