ข้อกำหนด: เราจะพบกับการใช้แถบความคืบหน้าต่างๆ ในระหว่างการพัฒนา เนื่องจากมีแถบความคืบหน้าต่างๆ ในปลั๊กอินปัจจุบัน เพื่ออำนวยความสะดวกในการพัฒนาที่กำหนดเองและการปรับเปลี่ยนสไตล์ที่สะดวก เราใช้ สไตล์ HTML และ CSS ที่นี่ ฟังก์ชั่นบาร์
ในบทความนี้ เราจะเข้าใจวิธีใช้ HTML/CSS เพื่อสร้างแถบความคืบหน้าพื้นฐานและแถบความคืบหน้าที่สวยงามและภาพเคลื่อนไหว
สร้างแถบความคืบหน้าผ่านมิเตอร์แท็ก HTML สร้างแถบความคืบหน้าผ่านความคืบหน้าของแท็ก HTML ใช้ข้อจำกัดของแถบความคืบหน้าของ CSS และการไล่ระดับสีเพื่อสร้างแถบความคืบหน้าปกติและภาพเคลื่อนไหว แถบความคืบหน้าที่มีรูปทรง ใช้ CSS เพื่อสร้างแถบความคืบหน้าทรงกลม
แถบความคืบหน้าที่พบบ่อยที่สุดที่เราพบคือแถบความคืบหน้าในแนวนอน นี่เป็นวิธีที่พบบ่อยที่สุด โดยส่วนใหญ่จะใช้ HTML5 เพื่อจัดเตรียมแท็กเนทิฟสองแท็ก และเพื่อใช้แถบความคืบหน้า
ตัวอย่างเฉพาะของมิเตอร์มีดังนี้:

<p> <span>ความสมบูรณ์:</span> <meter min="0" max="500" value="350">350 องศา</meter> </p>
โดยค่าต่ำสุด ค่าสูงสุด และค่าแสดงถึงค่าสูงสุด ค่าต่ำสุด และค่าปัจจุบันตามลำดับ
มาดูการใช้แท็กกัน:

<p> <label for="file">ความสมบูรณ์:</label> <ความคืบหน้าสูงสุด="100" ค่า="70"> 70% </ความคืบหน้า> </p>
ในหมู่พวกเขา คุณลักษณะ max อธิบายจำนวนงานทั้งหมดที่ต้องทำให้เสร็จสำหรับงานที่แสดงโดยองค์ประกอบความคืบหน้า และแอตทริบิวต์ value ใช้เพื่อระบุจำนวนงานที่เสร็จสมบูรณ์โดยแถบความคืบหน้า
ความแตกต่างระหว่างทั้งสองมีดังนี้: ดังนั้นคำถามคือ เมื่อพิจารณาจากการสาธิตข้างต้น ผลกระทบของทั้งสองป้ายกำกับจะเหมือนกันทุกประการ แล้วความแตกต่างคืออะไร เหตุใดจึงมีป้ายกำกับสองป้ายที่ดูเหมือนเหมือนกัน? ความแตกต่างที่ใหญ่ที่สุดระหว่างองค์ประกอบทั้งสองนี้คือความแตกต่างทางความหมาย มิเตอร์ แสดงถึงค่าการวัดสเกลาร์หรือค่าเศษส่วนภายในช่วงที่ทราบ ความคืบหน้า แสดงถึงความคืบหน้าของงาน ตัวอย่างเช่น ควรใช้ระดับความสำเร็จในปัจจุบันของข้อกำหนด และหากคุณต้องการแสดงค่าความเร็วปัจจุบันของรถยนต์ แผงหน้าปัดควรใช้มิเตอร์
ข้อจำกัดของมิเตอร์และความคืบหน้า แน่นอนว่าในข้อกำหนดทางธุรกิจจริงหรือสภาพแวดล้อมการผลิต คุณแทบไม่เคยเห็นป้ายกำกับมิเตอร์และความคืบหน้าเลย เรา ไม่สามารถปรับเปลี่ยนรูปแบบของมิเตอร์และป้ายกำกับความคืบหน้าได้อย่างมีประสิทธิภาพ เช่น สีพื้นหลัง สีพื้นหน้าความคืบหน้า ฯลฯ และสิ่งที่ร้ายแรงที่สุดคือประสิทธิภาพของสไตล์เริ่มต้นของเบราว์เซอร์ไม่สอดคล้องกันระหว่างเบราว์เซอร์ที่แตกต่างกัน นี่เป็นข้อบกพร่องร้ายแรงสำหรับธุรกิจที่แสวงหาเสถียรภาพและประสิทธิภาพ UI ที่สม่ำเสมอ! เราไม่สามารถเพิ่มเอฟเฟกต์ภาพเคลื่อนไหวและเอฟเฟกต์แบบโต้ตอบได้ เนื่องจากในบางสถานการณ์การใช้งานจริง นี่ไม่ใช่การแสดงแถบความคืบหน้าอย่างง่าย ๆ และไม่มีอะไรเพิ่มเติม ใช้ CSS เพื่อใช้งานแถบความคืบหน้า
ดังนั้นในขั้นตอนนี้ จึงมีการใช้วิธี CSS เพิ่มเติมเพื่อใช้แถบความคืบหน้า
(1) วิธีที่พบบ่อยที่สุดในการใช้เปอร์เซ็นต์เพื่อใช้แถบความคืบหน้า คือการใช้สีพื้นหลังรวมกับเปอร์เซ็นต์เพื่อสร้างแถบความคืบหน้าที่มีการไล่ระดับสี ตัวอย่าง DEMO ที่ง่ายที่สุดมีดังนี้:

<div class="g-คอนเทนเนอร์"> <div class="g-ความคืบหน้า"></div> </div> <div class="g-ความคืบหน้า"></div>
ในทำนองเดียวกัน เราสามารถใช้แอตทริบิวต์สไตล์ HTML เพื่อกรอกค่าพื้นหลังให้ครบถ้วนและส่งผ่านเปอร์เซ็นต์ที่แท้จริง เราแนะนำให้ใช้แอตทริบิวต์ที่กำหนดเองของ CSS เพื่อส่งผ่านค่าดังกล่าว CSS @property เพื่อแปลงรหัสของเรา:

<div class="g-progress" style="--ความคืบหน้า: 70%"></div>
@property --ความคืบหน้า {
ไวยากรณ์: '<เปอร์เซ็นต์>';
สืบทอด: เท็จ;
ค่าเริ่มต้น: 0%;
-
.g-ความคืบหน้า {
ระยะขอบ: อัตโนมัติ;
ความกว้าง: 240px;
ความสูง: 25px;
รัศมีเส้นขอบ: 25px;
พื้นหลัง: การไล่ระดับสีเชิงเส้น (90deg, #0f0, #0ff var (--ความคืบหน้า), โปร่งใส 0);
เส้นขอบ: 1px ทึบ #eee;
การเปลี่ยนแปลง: .3s --ความคืบหน้า;
-แกนหลักคือการใช้ พื้นหลังไล่ระดับสีเชิงมุม: conic-gradient(): ตัวอย่างเอฟเฟกต์มีดังนี้:

รหัสมีดังนี้:
<div class = "ความคืบหน้าวงกลม"
v-for="(item,index) ในความคืบหน้ารายการ" :key="index"
:สไตล์="{
พื้นหลัง: `การไล่ระดับสีแบบรัศมี(#fff 55%, โปร่งใส 56%), การไล่ระดับสีทรงกรวย(#3A7CFF ${item.rate}%, #f5f5f5 ${ item.rate && item.rate > 0 ? item.rate + 0.4 : 0 }%), การไล่ระดับสีแบบรัศมี (#fff 60%, #F1F3FC 0%);`
-
-
<span class="progress-value" >{{item.name}}</span>
<ระดับ div="totalvalbox">
{{ item.rate }}%
</div>
</div>
<style lang="scss" กำหนดขอบเขต>
.progress-วงกลม {
ตำแหน่ง: ญาติ;
ความกว้าง: 149rpx;
ความสูง: 149rpx;
ตระกูลฟอนต์: PingFang SC;
รัศมีชายแดน: 50%;
จอแสดงผล: ดิ้น;
จัดรายการ: กึ่งกลาง;
ปรับเนื้อหา: กึ่งกลาง;
-
.ความคืบหน้าค่า {
ตำแหน่ง: แน่นอน;
การจัดแนวข้อความ: กึ่งกลาง;
ความสูงของบรรทัด: 50rpx;
ความกว้าง: 100%;
น้ำหนักตัวอักษร: 400;
ขนาดตัวอักษร: 26rpx;
-
.totalvalbox {
ความกว้างขั้นต่ำ: 217rpx;
การจัดแนวข้อความ: กึ่งกลาง;
ตำแหน่ง: แน่นอน;
ด้านล่าง: -50rpx;
น้ำหนักตัวอักษร: 400;
ขนาดตัวอักษร: 30rpx;
-
</สไตล์>ปัญหาการเพิ่มประสิทธิภาพมีดังนี้:
ปัญหาที่มักจะเกิดขึ้นมีดังนี้: ข้อจำกัดของการใช้การไล่ระดับสีเชิงมุมของแถบความคืบหน้าของส่วนโค้ง แน่นอนว่าวิธีนี้มีข้อเสียสองประการ แน่นอนว่า เมื่อเปอร์เซ็นต์ความคืบหน้าไม่เหมือนกับตัวเลขเช่น 0°, 90°, 180°, 270°, 360° เมื่อใช้การไล่ระดับสีเชิงมุม จะมีขอบหยักที่เห็นได้ชัดเจนที่การเชื่อมต่อระหว่างสีต่างๆ ยกตัวอย่างการไล่ระดับสีแบบกรวย (#FFCDB2 0, #FFCDB2 27%, #B5838D 27%, #B5838D):

วิธีแก้ปัญหาดังกล่าวคือการเว้นพื้นที่การไล่ระดับสีไว้ที่จุดเชื่อมต่อ เรามาแปลงโค้ดการไล่ระดับสีเชิงมุมด้านบนกัน:
- - พื้นหลัง: การไล่ระดับสีทรงกรวย (#FFCDB2 0, #FFCDB2 27%, #B5838D 27%, #B5838D)` + พื้นหลัง: การไล่ระดับสีทรงกรวย (#FFCDB2 0, #FFCDB2 27%, #B5838D 27.2%, #B5838D)` -
ดูโค้ดด้านบนอย่างละเอียด การเปลี่ยนแปลงจาก 27% เป็น 27% เปลี่ยนจาก 27% เป็น 27.2% ส่วนเกิน 0.2% คือการกำจัดนามแฝง

ในบางกรณี เราจะพบแถบความคืบหน้าที่มีมุมโค้งมนที่ส่วนท้ายของแถบความคืบหน้า แน่นอนว่าสถานการณ์นี้สามารถแก้ไขได้หากสีของแถบความคืบหน้าเป็นสีทึบ เราสามารถบรรลุผลนี้ได้โดยการซ้อนสองสี วงกลมเล็กๆ ที่จุดเริ่มต้นและจุดสิ้นสุด หากแถบความคืบหน้าเป็นสีไล่ระดับสี จะต้องติดตั้งแถบความคืบหน้านี้ด้วยความช่วยเหลือของ SVG/Canvas
ตัวอย่างมีดังนี้:

html
<div class="g-ความคืบหน้า"></div> <div class="g-คอนเทนเนอร์"> <div class="g-ความคืบหน้า"></div> <div class="g-circle"></div> </div>
ซีเอสเอส
เนื้อความ html {
ความกว้าง: 100%;
ความสูง: 100%;
จอแสดงผล: ดิ้น;
-
.g-คอนเทนเนอร์ {
ตำแหน่ง: ญาติ;
ระยะขอบ: อัตโนมัติ;
ความกว้าง: 200px;
ความสูง: 200px;
-
.g-ความคืบหน้า {
ตำแหน่ง: ญาติ;
ระยะขอบ: อัตโนมัติ;
ความกว้าง: 200px;
ความสูง: 200px;
รัศมีชายแดน: 50%;
พื้นหลัง: การไล่ระดับสีทรงกรวย (#FFCDB2 0, #FFCDB2 25%, #B5838D 25%, #B5838D);
หน้ากาก: การไล่ระดับสีแบบรัศมี (โปร่งใส, โปร่งใส 80px, #000 80.5px, #000 0);
-
.g-วงกลม {
ตำแหน่ง: แน่นอน;
ด้านบน: 0;
ซ้าย: 0;
&::ก่อน,
&::หลังจาก {
เนื้อหา: "";
ตำแหน่ง: แน่นอน;
ด้านบน: 90px;
ซ้าย: 90px;
ความกว้าง: 20px;
ความสูง: 20px;
รัศมีชายแดน: 50%;
พื้นหลัง: #FFCDB2;
ดัชนี z: 1;
-
&::ก่อน {
แปลงร่าง: แปล (0, -90px);
-
&::หลังจาก {
แปลงร่าง: หมุน (90deg) แปล (0, -90px);
-
-จากส่วนขยายนี้ คุณยังสามารถใช้แถบความคืบหน้ารูปทรงโค้งหลายสีได้: (ซึ่งอาจดูไม่เหมือนแถบความคืบหน้า แต่จะคล้ายกับแผนภูมิวงกลมมากกว่า )

.g-ความคืบหน้า {
ความกว้าง: 160px;
ความสูง: 160px;
รัศมีชายแดน: 50%;
หน้ากาก: การไล่ระดับสีแบบรัศมี (โปร่งใส, โปร่งใส 50%, #000 51%, #000 0);
พื้นหลัง:
รูปกรวยไล่ระดับ (
#FFCDB2 0, #FFCDB2 25%,
#B5838D 25%, #B5838D 50%,
#673ab7 50%, #673ab7 90%,
#ff5722 90.2%, #ff5722 100%
-
-แถบความคืบหน้าแบบทรงกลมยังค่อนข้างธรรมดาเช่นกัน คล้ายกับดังต่อไปนี้:

รหัสหลักมีดังนี้: เพียงควบคุมความสูงของคลื่นเมื่อภาชนะทรงกลมบ่งชี้ความคืบหน้า 0% - 100% เราสามารถรับเอฟเฟกต์ภาพเคลื่อนไหวได้ตั้งแต่ 0% - 100%
<div class="คอนเทนเนอร์">
<div class="คลื่น-เปลี่ยน"></div>
<div class="คลื่น"></div>
</div>
.คอนเทนเนอร์ {
ความกว้าง: 200px;
ความสูง: 200px;
เส้นขอบ: RGB ทึบ 5px (118, 218, 255);
รัศมีชายแดน: 50%;
ล้น: ซ่อนเร้น;
-
.wave-เปลี่ยน {
ตำแหน่ง: แน่นอน;
ความกว้าง: 200px;
ความสูง: 200px;
ซ้าย: 0;
ด้านบน: 0;
แอนิเมชั่น: เปลี่ยนเชิงเส้นอนันต์ 12 วินาที;
&::ก่อน,
&::หลังจาก{
เนื้อหา: "";
ตำแหน่ง: แน่นอน;
ความกว้าง: 400px;
ความสูง: 400px;
ด้านบน: 0;
ซ้าย: 50%;
สีพื้นหลัง: rgba (255, 255, 255, .6);
รัศมีชายแดน: 45% 47% 43% 46%;
แปลงร่าง: แปล (-50%, -70%) หมุน (0);
แอนิเมชั่น: หมุน 7s เชิงเส้นไม่สิ้นสุด;
ดัชนี z: 1;
-
&::หลังจาก {
รัศมีชายแดน: 47% 42% 46% 44%;
สีพื้นหลัง: rgba (255, 255, 255, .8);
แปลงร่าง: แปล (-50%, -70%) หมุน (0);
ภาพเคลื่อนไหว: หมุน 9s เชิงเส้น -4s อนันต์;
ดัชนี z: 2;
-
-
.คลื่น {
ตำแหน่ง: ญาติ;
ความกว้าง: 200px;
ความสูง: 200px;
สีพื้นหลัง: rgb (118, 218, 255);
รัศมีชายแดน: 50%;
-
พี {
ตำแหน่ง: แน่นอน;
ด้านบน: 50%;
ซ้าย: 50%;
แปลงร่าง: แปล (-50%, -50%);
ขนาดตัวอักษร: 36px;
สี: #000;
ดัชนี z: 10;
-
@keyframes หมุน {
ถึง {
แปลงร่าง: แปล (-50%, -70%) หมุน (360deg);
-
-
@keyframes เปลี่ยน {
จาก {
ด้านบน: 80px;
-
ถึง {
ด้านบน: -120px;
-
-แน่นอนว่า CSS เปลี่ยนแปลงอยู่ตลอดเวลา และประเภทของแถบความคืบหน้าไม่ได้จำกัดอยู่เพียงหมวดหมู่ข้างต้นอย่างแน่นอน ตัวอย่างเช่น เราสามารถใช้ตัวกรองเพื่อเลียนแบบแอนิเมชั่นการชาร์จของโทรศัพท์มือถือ Huawei ซึ่งเป็นวิธีการนำเสนอแถบความคืบหน้าและยังสามารถนำไปใช้งานโดยใช้ CSS ล้วนๆ ได้:

รหัสหลักมีดังนี้
<div class="g-คอนเทนเนอร์">
<div class="g-number">98.7%</div>
<div class="g-ความคมชัด">
<div class="g-circle"></div>
<ul class="g-bubbles">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
HTML,
ร่างกาย {
ความกว้าง: 100%;
ความสูง: 100%;
จอแสดงผล: ดิ้น;
พื้นหลัง: #000;
ล้น: ซ่อนเร้น;
-
.g-number {
ตำแหน่ง: แน่นอน;
ความกว้าง: 300px;
ด้านบน: 27%;
การจัดแนวข้อความ: กึ่งกลาง;
ขนาดตัวอักษร: 32px;
ดัชนี z: 10;
สี: #fff;
-
.g-คอนเทนเนอร์ {
ตำแหน่ง: ญาติ;
ความกว้าง: 300px;
ความสูง: 400px;
ระยะขอบ: อัตโนมัติ;
-
.g-ความคมชัด {
ตัวกรอง: ความคมชัด (10) หมุนสี (0);
ความกว้าง: 300px;
ความสูง: 400px;
สีพื้นหลัง: #000;
ล้น: ซ่อนเร้น;
ภาพเคลื่อนไหว: hueRotate 10s เชิงเส้นไม่มีที่สิ้นสุด;
-
.g-วงกลม {
ตำแหน่ง: ญาติ;
ความกว้าง: 300px;
ความสูง: 300px;
ขนาดกล่อง: เส้นขอบกล่อง;
ตัวกรอง: เบลอ (8px);
&::หลังจาก {
เนื้อหา: "";
ตำแหน่ง: แน่นอน;
ด้านบน: 40%;
ซ้าย: 50%;
แปลงร่าง: แปล (-50%, -50%) หมุน (0);
ความกว้าง: 200px;
ความสูง: 200px;
สีพื้นหลัง: #00ff6f;
รัศมีเส้นขอบ: 42% 38% 62% 49% / 45%;
แอนิเมชั่น: หมุนเส้นตรงแบบไม่มีที่สิ้นสุด 10 วินาที;
-
&::ก่อน {
เนื้อหา: "";
ตำแหน่ง: แน่นอน;
ความกว้าง: 176px;
ส่วนสูง: 176px;
ด้านบน: 40%;
ซ้าย: 50%;
แปลงร่าง: แปล (-50%, -50%);
รัศมีชายแดน: 50%;
สีพื้นหลัง: #000;
ดัชนี z: 10;
-
-
.g-ฟอง {
ตำแหน่ง: แน่นอน;
ซ้าย: 50%;
ด้านล่าง: 0;
ความกว้าง: 100px;
ความสูง: 40px;
แปลงร่าง: แปล (-50%, 0);
รัศมีเส้นขอบ: 100px 100px 0 0;
สีพื้นหลัง: #00ff6f;
ตัวกรอง: เบลอ (5px);
-
ลี่ {
ตำแหน่ง: แน่นอน;
รัศมีชายแดน: 50%;
พื้นหลัง: #00ff6f;
-
@สำหรับ $i จาก 0 ถึง 15 {
li:nth-child(#{$i}) {
$ความกว้าง: 15 + สุ่ม(15) + px;
ซ้าย: 15 + สุ่ม (70) + px;
ด้านบน: 50%;
แปลงร่าง: แปล (-50%, -50%);
ความกว้าง: $ความกว้าง;
ความสูง: $ความกว้าง;
แอนิเมชั่น: moveToTop #{random(6) + 3}s easy-in-out -#{random(5000)/1000}s infinite;
-
-
@keyframes หมุน {
50% {
รัศมีเส้นขอบ: 45% / 42% 38% 58% 49%;
-
100% {
แปลงร่าง: แปล (-50%, -50%) หมุน (720deg);
-
-
@keyframes ย้ายToTop {
90% {
ความทึบ: 1;
-
100% {
ความทึบ: .1;
แปลงร่าง: แปล (-50%, -180px);
-
-
@keyframes hueRotate {
100% {
ตัวกรอง: ความคมชัด (15) หมุนสี (360 องศา);
-
-สุดท้ายนี้ ฉันขอแนะนำแถบความคืบหน้าที่ดีและมีคุณภาพสูงและเจ๋งๆ หลายอัน

คุณสามารถคลิกการใช้งานเอฟเฟกต์ข้างต้นโดยสมบูรณ์ - ใช้ CSS อย่างชาญฉลาดเพื่อให้ได้แอนิเมชั่นการชาร์จที่ยอดเยี่ยม

นี่เป็นการสรุปบทความนี้เกี่ยวกับวิธีใช้งานฟังก์ชันแถบความคืบหน้าต่างๆ ผ่าน HTML/CSS เพียงเท่านี้สำหรับการแนะนำบทความ สำหรับเนื้อหาแถบความคืบหน้า html css ที่เกี่ยวข้อง โปรดค้นหาบทความก่อนหน้าของ downcodes.com หรือเรียกดูบทความที่เกี่ยวข้องด้านล่างต่อไป ฉันหวังว่าคุณจะสนับสนุน downcodes.com ในอนาคต!