HTML <progress> 進度條
HTML5之前沒有自帶的進度條效果,只能通過JavaScript結合CSS模擬實現。
模擬實現進度條可以參閱JavaScript 動態進度條效果一章節。
大家知道,版本的更新通常意味著功能的增強與便利性的提高,HTML也不例外。
HTML5新增<progress>標籤,可以將其用在檔案上傳與下載的進度顯示。
也可以將其作為簡單的loadding載入狀態提示效果,下面將對其進行詳細介紹。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> 進度條演示:<br/> <progress value="20" max="100"></progress> </body> </html>
程式碼執行效果截圖如下:
此標籤具有的主要屬性如下:
(1).max:整數或者浮點數,用於表示進度條的總量,預設值是1。
(2).value:整數或者浮點數,表示當前進度條的進度。
後面結合程式碼例項對這兩個屬性的一些細節進行詳細說明。
一.作為loadding進度條:
loadding進度條或者載入等待效果能夠給瀏覽者較為人性化的提示。
progress標籤可以實現比較簡單的上述效果,只要將<progress>標籤置入頁面,不設定value屬性值即可。
其實很容易理解,不設定value屬性值,也就不知道當前進度在何處,於是顯示出一個loadding狀態。
在不同的瀏覽器顯示的狀態不同,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> loadding載入效果:<br/> <progress max="100"></progress> </body> </html>
執行後此標籤呈現一種動態效果,非常簡單不多介紹。
二.設定進度條位置:
既然是進度條控制元件,自然可以設定當前所在的進度。
所謂的進度其實就是value屬性值與max屬性值數值比例的在進度條外觀上的一種體現。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> 進度條演示:<br/> <progress value="50" max="100"></progress> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).value屬性值設定為50。
(2).max設定為100。
(3).進度條當前完成的進度其實就是value/max比例位置,所以上述進度條完成一半。
(4).max屬性值預設為1,如果顯式設定,那麼值必須是大於0的整數或者浮點數。
(5).value屬性值必須是介於0-max之間,於是如果沒有顯式設定max值,那麼value必須介於0.01~1.0之間。
三.動態效果演示:
此控制元件在實際專案中通常用於顯示載入或者下載等效果的進度,是一個動態效果。
這自然要結合JavaScript來實現,下面就演示一段簡單的程式碼例項供大家參考。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ var p=document.getElementById("p"); var obt=document.getElementById("bt"); obt.onclick=function(){ goprogress() } function goprogress(){ gotoend(p,0); } function gotoend(p,value){ var value=value+1; p.value=value; if(value<100) { setTimeout(function(){gotoend(p, value);},20) }else{ setTimeout(function(){alert("全部載入完成")},20); } } } </script> </head> <body> <progress id="p" value="0" max="100"></progress> <br> <input type="button" value="檢視效果" id="bt"/> </body> </html>
點選按鈕可以實現進度條載入效果,對程式碼簡單分析如下:
(1).進度條控制元件之所以呈現視覺上的動態效果是通過定時器函式每隔20毫秒遞迴呼叫一次gotoend函式。
(2).每呼叫一次gotoend函式,可以將value值加1,於是就出現了動態效果。
(3).當value值等於100,那麼彈出完成提示。
當然實際應用中,此控制元件都是需要和伺服器進行互動實時顯示檔案上傳下載進度。
比如可以結合ajax或者FileReader,本文不再進行介紹,可以自行在網上查詢。
相關閱讀:
(1).setTimeout參閱JavaScript setTimeout()一章節。
(2).document.getElementById參閱document.getElementById()一章節。
相關文章
- 直播平臺搭建原始碼,uniapp progress進度條原始碼APP
- 這才是我想要的彩虹進度條-[vue-ins-progress-bar]Vue
- 【新特性速遞】進度條,進度條,進度條
- 請使用純HTML製作一個進度條HTML
- Qt 進度條QT
- wkwebView 新增 進度條WebView
- 學習進度條
- 簡單進度條
- Python進度條技巧Python
- canvas 畫進度條Canvas
- Linux 進度條(非100%)列出unzip進度Linux
- Android花樣loading進度條(三)-配文字環形進度條Android
- HTML5觸控事件實現移動端簡易進度條HTML事件
- 9個絢麗多彩的HTML5進度條動畫賞析HTML動畫
- N 種僅僅使用 HTML/CSS 實現各類進度條的方式HTMLCSS
- ProgressBar進度條顏色
- icp配準進度條
- Excel實現完成進度的進度條結果Excel
- canvas環形進度條效果Canvas
- 數字進度條元件NumberProgressBar元件
- 橡皮筋進度條ElasticProgressBarAST
- Python之程式碼進度條Python
- golang 進度條功能實現Golang
- psplash進度條旋轉成功
- Flutter 波浪圓形進度條Flutter
- LVGL高效顯示進度條
- HTML中Progress標籤的定義及用法總結!HTML
- Python 輸出命令列進度條Python命令列
- Ajax 處理時進度條使用
- jQuery實進度條效果詳解jQuery
- Android自定義圓形進度條Android
- ios自定義圓環進度條iOS
- carousel 輪播自定義進度條
- 58python 進度條設計Python
- 關於WPF進度條的使用
- canvas錐形漸變進度條Canvas
- laravel自定義命令列印進度條Laravel命令列
- c# 控制檯console進度條C#