Бордер в процентах

123
22 августа 2019, 13:20

Пытаюсь понять, как сделать такой бордер

Есть очевидный вариант с отрисовкой 100 картинок под каждый процент, но хотелось бы что нибудь на css и js. Примеров кода нет, т.к даже микроидей нет.

Answer 1

Проще, лучше и красивее - будет реализовать такое на SVG, например:

var count = $(('#count')); 
$({ Counter: 0 }).animate({ Counter: count.text() }, { 
  duration: 5000, 
  easing: 'linear', 
  step: function () { 
    count.text(Math.ceil(this.Counter)+ "%"); 
  } 
}); 
 
var s = Snap('#animated'); 
var progress = s.select('#progress'); 
 
progress.attr({strokeDasharray: '0, 251.2'}); 
Snap.animate(0,251.2, function( value ) { 
    progress.attr({ 'stroke-dasharray':value+',251.2'}); 
}, 5000);
body{text-align:center;font-family:sans-serif;} 
svg{width:30%;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.3.0/snap.svg-min.js"></script> 
<svg id="svg" viewbox="0 0 100 100"> 
  <circle cx="50" cy="50" r="45" fill="#FDB900"/> 
  <path fill="none" stroke-linecap="round" stroke-width="5" stroke="#fff" 
        stroke-dasharray="1,250.2" 
        d="M50 10 
           a 40 40 0 0 1 0 80 
           a 40 40 0 0 1 0 -80"/> 
  <text x="50" y="50" text-anchor="middle" dy="7" font-size="20">1%</text> 
</svg> 
<svg viewbox="0 0 100 100"> 
  <circle cx="50" cy="50" r="45" fill="#FDB900"/> 
  <path fill="none" stroke-linecap="round" stroke-width="5" stroke="#fff" 
        stroke-dasharray="125.6,125.6" 
        d="M50 10 
           a 40 40 0 0 1 0 80 
           a 40 40 0 0 1 0 -80"/> 
  <text x="50" y="50" text-anchor="middle" dy="7" font-size="20">50%</text> 
</svg> 
 
<svg id="animated" viewbox="0 0 100 100"> 
  <circle cx="50" cy="50" r="45" fill="#FDB900"/> 
  <path id="progress" stroke-linecap="round" stroke-width="5" stroke="#fff" fill="none" 
        d="M50 10 
           a 40 40 0 0 1 0 80 
           a 40 40 0 0 1 0 -80"> 
  </path> 
  <text id="count" x="50" y="50" text-anchor="middle" dy="7" font-size="20">100%</text> 
</svg>

Источник: Круговой процентный прогресс бар | StackOverflow на русском

Можно конечно и на JS\JQ, но будет это несколько кривовато и больше кода займёт.

READ ALSO
Задержка внутри двойного цикла

Задержка внутри двойного цикла

Привет у меня такой код

129
Помогите с группировкой в запросе

Помогите с группировкой в запросе

Нужно получить промежутки времени работы менеджеров, 15 минут бездействия считать за перерывИ группировать их по менеджерам

103
Дизайн кнопки с помощью СSS

Дизайн кнопки с помощью СSS

Подскажите пожалуйста, как можно сделать такой дизайн кнопки с помощью CSS или только можно с наложением background?

121
Отслеживание изменения url в iFrame

Отслеживание изменения url в iFrame

Друзья подскажите как реализовать силами js(jquery) отслеживание того какая ссылка сейчас открыта в iframe и по каким ссылкам ходит пользовательИ...

104