Rumah > hujung hadapan web > tutorial css > Bagaimanakah Saya Boleh Mencipta Penunjuk Kemajuan CSS Sahaja Yang Berhenti pada Peratusan Tertentu?

Bagaimanakah Saya Boleh Mencipta Penunjuk Kemajuan CSS Sahaja Yang Berhenti pada Peratusan Tertentu?

Susan Sarandon
Lepaskan: 2024-12-14 03:14:14
asal
546 orang telah melayarinya

How Can I Create a CSS-Only Progress Indicator That Stops at a Specific Percentage?

Penunjuk Kemajuan Yang Berhenti pada Peratusan Tertentu Menggunakan CSS Sahaja

Anda telah mencari bar kemajuan di tapak web ini, tetapi yang anda' telah menemui semua bulatan animasi rancangan yang pergi ke 100% penuh. Walau bagaimanapun, anda berminat untuk mencipta bar kemajuan yang berhenti pada peratusan tertentu, seperti yang dipaparkan dalam tangkapan skrin di bawah.

Untuk mencapai kesan ini hanya menggunakan CSS, anda boleh menggunakan gabungan teknik keratan dan animasi . Pertimbangkan biola berikut sebagai contoh:

.wrapper {
  width: 100px; /* Set the size of the progress bar */
  height: 100px;
  position: absolute; /* Enable clipping */
  clip: rect(0px, 100px, 100px, 50px); /* Hide half of the progress bar */
}
/* Set the sizes of the elements that make up the progress bar */
.circle {
  width: 80px;
  height: 80px;
  border: 10px solid green;
  border-radius: 50px;
  position: absolute;
  clip: rect(0px, 50px, 100px, 0px);
}
/* Using the data attributes for the animation selectors. */
/* Base settings for all animated elements */
div[data-anim~=base] {
  -webkit-animation-iteration-count: 1;  /* Only run once */
  -webkit-animation-fill-mode: forwards; /* Hold the last keyframe */
  -webkit-animation-timing-function:linear; /* Linear animation */
}

.wrapper[data-anim~=wrapper] {
  -webkit-animation-duration: 0.01s; /* Complete keyframes asap */
  -webkit-animation-delay: 3s; /* Wait half of the animation */
  -webkit-animation-name: close-wrapper; /* Keyframes name */
}

.circle[data-anim~=left] {
  -webkit-animation-duration: 6s; /* Full animation time */
  -webkit-animation-name: left-spin;
}

.circle[data-anim~=right] {
  -webkit-animation-duration: 3s; /* Half animation time */
  -webkit-animation-name: right-spin;
}
/* Rotate the right side of the progress bar from 0 to 180 degrees */
@-webkit-keyframes right-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(180deg);
  }
}
/* Rotate the left side of the progress bar from 0 to 360 degrees */
@-webkit-keyframes left-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}
/* Set the wrapper clip to auto, effectively removing the clip */
@-webkit-keyframes close-wrapper {
  to {
    clip: rect(auto, auto, auto, auto);
  }
}
Salin selepas log masuk
<div class="wrapper" data-anim="base wrapper">
  <div class="circle" data-anim="base left"></div>
  <div class="circle" data-anim="base right"></div>
</div>
Salin selepas log masuk

Dalam biola ini, gabungan keratan, elemen bulat dan animasi digunakan untuk mencipta kesan yang diingini. Dengan menyembunyikan separuh daripada bar kemajuan menggunakan sifat klip, dan kemudian menghidupkan putaran bahagian berbeza elemen bulatan, bar kemajuan yang berhenti pada peratusan tertentu dicapai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Penunjuk Kemajuan CSS Sahaja Yang Berhenti pada Peratusan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan