整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Html、Css、JavaScript制作圓形進度條的代碼及基礎分析

          .說明:

          推薦指數:★★★★

          通俗易懂,小白一看就會,高手請飄過。

          學python也是需要懂一點Html、Css、JavaScript的基礎知識的。

          建議使用vscode編輯器。


          2.效果圖1


          3.代碼:保存為html,用瀏覽器打開即可。

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title>圓形百分比進度條效果</title>
          		<style type="text/css">
          		*{
          			margin: 0;
          			padding: 0;
          		}
          		.bg{
          			width: 200px;
          			height: 200px;
          			border-radius: 100%;
          			background: #ccc;
          			position: relative;
          			margin: 20px auto;
          		}
          		.circle-right, .circle-left, .mask-right, .mask-left{
          			width: 200px;
          			height: 200px;
          			border-radius: 100%;
          			position: absolute;
          			top: 0;
          			left: 0;
          		}
          		.circle-right, .circle-left{
          			background: skyblue;
          		}
          		.mask-right, .mask-left{
          			background: #ccc;
          		}
          		.circle-right, .mask-right{
          			clip: rect(0,200px,200px,100px);
          		}
          		.circle-left, .mask-left{
          			clip: rect(0,100px,200px,0);
          		}
          		.text{
          			width: 160px;
          			height: 160px;
          			line-height: 160px;
          			text-align: center;
          			font-size: 34px;
          			color: deepskyblue;
          			border-radius: 100%;
          			background: #fff;
          			position: absolute;
          			top: 20px;
          			left: 20px;
          		}
          		</style>
          	</head>
          	<body>
          		<div class="bg">
          			<div class="circle-right"></div>
          			<!--100%是顯示百分數,動態顯示由0~100-->
          			<div class="text">100%</div> 
          
          		</div>
          		
          		<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
          		<script type="text/javascript">
          			$(function(){				
          				//獲取百分比值
          				var num = parseInt($('.text').html());
          				
          				//通過計時器來顯示過渡的百分比進度
          				var temp = 0;
          				var timer = setInterval(function(){
          					calculate(temp);
          					//清除計時器結束該方法調用
          					if(temp == num){
          						clearInterval(timer);
          					}
          					temp++;
          				},30)
          
          				//改變頁面顯示百分比
          				function calculate(value){
          					//改變頁面顯示的值
          					$('.text').html(value + '%');
          					
          					//清除上次調用該方法殘留的效果
          					$('.circle-left').remove();
          					$('.mask-right').remove();
          					
          					//當百分比小于等于50
          					if(value <= 50){
          						var html = '';
          						
          						html += '<div class="mask-right" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
          						
          						//元素里添加子元素
          						$('.circle-right').append(html);
          					}else{
          						value -= 50;
          						var html = '';
          						
          						html += '<div class="circle-left">';
          						html += '<div class="mask-left" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
          						html += '</div>';
          						
          						//元素后添加元素
          						$('.circle-right').after(html);
          					}
          				}
          			})
          		</script>
          		
          	</body>
          </html>

          4.拆分法:把一個含有css和js(JavaScript)的html,拆掉三個文件,一個叫cirbar1.html,另外的叫:cirbar1.css和cirbar1.js文件,放在同一個文件夾內。這是./的意思,也可以指定文件夾。

          4.1 cirbar1.html的代碼:

          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="UTF-8">
          		<title>圓形百分比進度條效果v2</title>
          		<!--如果是style type="text/css"這種直接在html中設置css,注意起始是*,不是點-->
          		<!--style type="text/css"-->
          		<link href="./cirbar1.css" rel="stylesheet" />
          	</head>
          	<body>
          		<div class="bg">
          			<div class="circle-right"></div>
          			
          			<div class="text">100%</div> 
          		</div>
          		<!--這個外部js文件=jquery.min.js,不能少,否則不能動了-->
          		<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"--></script>
                  <!--同樣的,把寫在html的js,新建一個cirbar1.js,復制下去,保存,這樣子簡潔很多-->
          		<!--script type="text/javascript"-->
          		<script src="./cirbar1.js"></script>
          	</body>
          </html>

          4.2 cirbar1.css的代碼:

          		*{
          			margin: 0;
          			padding: 0;
          		}
          		.bg{
          			width: 200px;
          			height: 200px;
          			border-radius: 100%;
          			background: #ccc;
          			position: relative;
          			margin: 20px auto;
          		}
          		.circle-right, .circle-left, .mask-right, .mask-left{
          			width: 200px;
          			height: 200px;
          			border-radius: 100%;
          			position: absolute;
          			top: 0;
          			left: 0;
          		}
          		.circle-right, .circle-left{
          			background: skyblue;
          		}
          		.mask-right, .mask-left{
          			background: #ccc;
          		}
          		.circle-right, .mask-right{
          			clip: rect(0,200px,200px,100px);
          		}
          		.circle-left, .mask-left{
          			clip: rect(0,100px,200px,0);
          		}
          		.text{
          			width: 160px;
          			height: 160px;
          			line-height: 160px;
          			text-align: center;
          			font-size: 34px;
          			color: deepskyblue;
          			border-radius: 100%;
          			background: #fff;
          			position: absolute;
          			top: 20px;
          			left: 20px;
          		}

          4.3 cirbar1.js的代碼:

          			$(function(){				
          				//獲取百分比值
          				var num = parseInt($('.text').html());
          				
          				//通過計時器來顯示過渡的百分比進度
          				var temp = 0;
          				var timer = setInterval(function(){
          					calculate(temp);
          					//清除計時器結束該方法調用
          					if(temp == num){
          						clearInterval(timer);
          					}
          					temp++;
          				},30)
          
          				//改變頁面顯示百分比
          				function calculate(value){
          					//改變頁面顯示的值
          					$('.text').html(value + '%');
          					
          					//清除上次調用該方法殘留的效果
          					$('.circle-left').remove();
          					$('.mask-right').remove();
          					
          					//當百分比小于等于50
          					if(value <= 50){
          						var html = '';
          						
          						html += '<div class="mask-right" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
          						
          						//元素里添加子元素
          						$('.circle-right').append(html);
          					}else{
          						value -= 50;
          						var html = '';
          						
          						html += '<div class="circle-left">';
          						html += '<div class="mask-left" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
          						html += '</div>';
          						
          						//元素后添加元素
          						$('.circle-right').after(html);
          					}
          				}
          			})

          ==============================

          再來一個,不用外部js文件的圓形進度條

          順帶回顧一下相關知識。

          ==============================

          5.效果圖


          6.三個文件,放在同一個文件夾中

          6.1 cirbar.html代碼:

          <!--第1步---聲明html5-->
          <!DOCTYPE html> 
          
          <!--第2步---html大框架-->
          <html lang="en">
          
          <!--第2-1步---head部分-->
          <head>
              <!--第2-1-1步---meta部分:聲明字符編碼格式:utf-8-->
              <!--注意與python的第一行聲明一樣:# -*- coding: utf-8 -*-->
              <meta charset="utf-8" />
              <!--第2-1-2步---標題名稱-->
              <title>圓形進度條v1</title>
              <!--注意:./代表同一個文件夾下,也就是css和js文件與本html文件放在同一個文件夾下-->
              <!--第2-1-3步---導入css文件-->
              <link href="./cirbar.css" rel="stylesheet" />
          </head>
          
          <!--第2-2步---body部分-->
          <body>
              <!--第2-2-1步---定義畫布部分,注意沒有逗號隔開,大小設置-->
              <canvas class="canvas" id="canvas" width="400" height="400"></canvas>
              <!--第2-2-2步---導入js文件部分-->
              <script src="./cirbar.js"></script>
          
          <!--注意收尾-->
          </body>
          <!--注意收尾-->
          </html>

          6.2 cirbar.css代碼:

          .canvas {
                      /*畫布的背景顏色設置為:黑色*/
                      background:#303030;
                      
                  }

          6.3 cirbar.js代碼:

          window.onload = function () {
                      var canvas = document.getElementById('canvas'),  //獲取canvas元素
                          context = canvas.getContext('2d'),  //獲取畫圖環境,指明為2d
                          centerX = canvas.width / 2,   //Canvas中心點x軸坐標
                          centerY = canvas.height / 2,  //Canvas中心點y軸坐標
                          rad = Math.PI * 2 / 100, //將360度分成100份,那么每一份就是rad度
                          speed = 0.1; //加載的快慢就靠它了
                      //繪制紅色外圈
                      function blueCircle(n) {
                          context.save();
                          context.strokeStyle = "	#1E90FF"; //隨百分數轉動的外圈的顏色為藍色
                          context.lineWidth = 3; //設置線寬
                          context.beginPath(); //路徑開始
                          //注意-為順時針,+為逆時針
                          //用于繪制圓弧context.arc(x坐標,y坐標,半徑,起始角度,終止角度,順時針/逆時針)
                          //context.arc(centerX, centerY, 50, Math.PI / 2, Math.PI / 2 - n * rad, false); 
                          context.arc(centerX, centerY, 50, -Math.PI / 2, -(Math.PI / 2 - n * rad), false); 
                          context.stroke(); //繪制
                          context.closePath(); //路徑結束
                          context.restore();
                      }
                      //繪制白色外圈,初始的白色外圈
                      function whiteCircle() {
                          context.save();
                          context.beginPath();
                          // 下面百分數的字體顏色設置后上面的外圈的顏色竟然保持一樣
                          //context.strokeStyle = "#F8F8FF";
                          context.arc(centerX, centerY, 50, 0, Math.PI * 2, false);
                          context.stroke();
                          context.closePath();
                          context.restore();
                      }
                      //百分比文字繪制
                      function text(n) {
                          context.save(); //save和restore可以保證樣式屬性只運用于該段canvas元素
                          context.strokeStyle = "#7FFF00";//設置中間動態百分數的顏色
                          context.font = "25px Arial"; //設置字體大小和字體
                          context.textAlign = 'center';//字體水平居中
                          context.textBaseline = 'middle';//字體垂直居中
                          //繪制字體,并且指定位置
                          context.strokeText(n.toFixed(0) + "%", centerX, centerY);
                          context.stroke(); //執行繪制
                          context.restore();
                      }
                      //循環獲取
                      (function drawFrame() {
                          window.requestAnimationFrame(drawFrame, canvas);
                          context.clearRect(0, 0, canvas.width, canvas.height);
                          whiteCircle();
                          text(speed);
                          blueCircle(speed);
                          if (speed < 100) {
                              //1可從后臺獲取值,也是從0~100,step為1,代表速度
                              speed += 1;
                          }
                      }());
                  }

          注意到6.3js文件與4.3js文件的區別了么?一個有:window.onload =,一個沒有,且只有$和小括號,因為外部的就是文件定義了一部分功能。

          形元素的應用是在網頁設計中一個相對較新的發展。與互聯網普及初期相比,如今的網頁設計水平已經超出很多人的想象,比如圓形的應用,現在的CSS工具使圓圈的創建越來越容易,所以他們在網頁設計中的使用變得更加普遍。

          當然還有許多人認為圓在網頁設計中使用比較困難,并且它的存在仍有爭議。然而,如果我們保持一個良好的網格布局,留有大量的空白,基于圓形的設計會成為網頁設計的亮點。

          YES!為什么不大膽探索?你會發現,如果能成功運用圓形元素,會有令你意想不到的效果,要知道,圓形要素往往是很吸引眼球的,它會讓你脫穎而出。所以,今天我們就與大家共同學習如何選擇合適的元素,并把它應用在圓形圖案中。

          Logo

          首先來說說圓形LOGO如何運用:圓形LOGO,會給人一種干凈、簡約的感覺,也容易給人以優雅和高級的印象。圓是人類已知的最古老的圖形之一,生活中無處不存在圓形。產生這個事實的原因可能是,許多設計師用它來代表自己的品牌和網站。下面的以圓形為基礎的logo設計就值得學習。

          導航欄

          在今天的成長和不斷發展的移動市場,用圓圈作為導航正在成為一個日益流行和合乎邏輯的選擇。隨著的觸摸屏設備的興起,除了智能手機和平板電腦,這種圖案的導航應用越來越廣泛,并有很好的理由。采用圓形的按鈕,可以直觀地與用戶連接,甚至模仿指尖的形狀,激勵用戶按它。

          圖標

          圓形標志肯定是在網頁設計中最常用的和運行時間最長的圓形元素。因為它們通常是圖像,所以甚至不需要CSS提供太多的功能就可以達到運用的要求,沒錯,圓形可以自己去完美勝任任務,也許有人會認為,圓形圖標已經在網頁設計中運用了一段時間了,也應有一些變化了,是不是應該開發更多樣化的趨勢?但我們也發現不知為何圓形越來越廣泛運用,可能It just work吧,它就是有這樣的能力。

          圖片預覽

          我們已經在很多網站中看到這種技術了,不得不說還是很賞心悅目的的。而且,把一個預覽圖巧妙的放在一個剪裁圈里通常會讓人覺得很炫酷哦,這就達到了吸睛的效果,是的,圓形不僅會在視覺上引導用戶,還能更好的引導互動與交流。至于可用性,只要給圓形圖像足夠的空間,它們一樣可以匹配網站創意與和諧的外觀。

          Calls to action

          網站導航和觸摸屏設備的普及讓CTAs呼吁欄也有了很好的圓形素材使用效果,不過,如果你在網站上以類似的方式同時呈現導航和CTAs,那就不太好了,你應該盡量讓他們用不同方式脫穎而出。導航很必要,CTAs也非常重要,如何把兩部分都做得漂亮?對新的網頁設計師來說,創建一個可視化的層次是不錯的意見。

          本文來源:視覺中國

          下是一個使用HTML和CSS實現綻放的煙花的示例代碼:

          ```html

          <!DOCTYPE html>

          <html>

          <head>

          <title>綻放的煙花</title>

          <style>

          .firework {

          position: relative;

          width: 100px;

          height: 100px;

          background-color: #ff0000;

          border-radius: 50%;

          animation: explode 1s ease-in-out infinite;

          }

          @keyframes explode {

          0% {

          transform: scale(1);

          opacity: 1;

          }

          50% {

          transform: scale(1.5);

          opacity: 0.5;

          }

          100% {

          transform: scale(1);

          opacity: 1;

          }

          }

          </style>

          </head>

          <body>

          <div class="firework"></div>

          </body>

          </html>

          ```

          這段代碼創建了一個`div`元素,并將其樣式設置為一個圓形的紅色煙花。使用CSS的動畫效果,通過`@keyframes`定義了一個名為`explode`的動畫,使煙花在1秒鐘內以縮放的方式產生綻放效果。動畫會無限循環播放,直到頁面關閉。

          你可以將上述代碼保存為一個HTML文件,并在瀏覽器中打開,就能看到綻放的煙花效果了。希望你喜歡!


          主站蜘蛛池模板: 无码人妻精品一区二| 精品国产福利第一区二区三区| 亚洲愉拍一区二区三区| 欧美日韩精品一区二区在线视频| 波多野结衣精品一区二区三区| 精品国产一区二区三区久久影院| 一区二区福利视频| 香蕉视频一区二区三区| 久久婷婷久久一区二区三区| 亚洲精品国产suv一区88| 人妻免费一区二区三区最新| 国产日韩综合一区二区性色AV| 国产精品丝袜一区二区三区| 麻豆国产在线不卡一区二区 | 国产在线乱子伦一区二区| 国产一区麻豆剧传媒果冻精品| 久久精品无码一区二区三区不卡| 无码人妻精品一区二区三区在线 | 亚洲av无码片vr一区二区三区| 久久精品无码一区二区三区日韩| 无码一区二区三区爆白浆| 久久久国产精品亚洲一区 | 福利一区二区在线| 精产国品一区二区三产区| 无码免费一区二区三区免费播放| 伊人色综合一区二区三区 | 国产AV午夜精品一区二区入口 | 国产视频福利一区| 激情久久av一区av二区av三区| 亚洲一区二区三区成人网站| 国产福利一区二区三区在线观看| 亚洲福利视频一区二区三区| 另类免费视频一区二区在线观看| 又硬又粗又大一区二区三区视频| 狠狠色婷婷久久一区二区三区 | 日本一区频道在线视频| 精品不卡一区中文字幕 | 亚洲午夜一区二区三区| 香蕉免费看一区二区三区| 一区二区三区在线免费| 亚洲综合在线成人一区|