2017-02-06 4 views
0

Я использую опцию выбора цвета в своем шаблоне html. Я не изменяю цвет заливки progressbar с помощью css, потому что индикатор выполнения заливки меняет цвет из кода javascript. Как я могу изменить его с помощью кода css. я включить этот плагин здесьКак изменить цвет заливки progressbar css

$(document).ready(function ($) { 
    function animateElements() { 
     $('.progressbar').each(function() { 
      var elementPos = $(this).offset().top; 
      var topOfWindow = $(window).scrollTop(); 
      var percent = $(this).find('.circle').attr('data-percent'); 
      var percentage = parseInt(percent, 10)/parseInt(100, 10); 
      var animate = $(this).data('animate'); 
      if (elementPos < topOfWindow + $(window).height() - 30 && !animate) { 
       $(this).data('animate', true); 
       $(this).find('.circle').circleProgress({ 
        startAngle: -Math.PI/2, 
        value: percent/100, 
        thickness: 14, 
        fill: { 
         color: '#1B58B8' 
        } 
       }).on('circle-animation-progress', function (event, progress, stepValue) { 
        $(this).find('div').text((stepValue*100).toFixed(1) + "%"); 
       }).stop(); 
      } 
     }); 
    } 

    // Show animated elements 
    animateElements(); 
    $(window).scroll(animateElements); 
}); 

Demo Here

ответ

1

Похоже, графики втягиваются в холст. Таким образом, вы не можете указать цвет заливки в своем CSS. Вы должны сделать это в своем JS.

Если вы не возражаете, добавив некоторые дополнительные данные для вашего div с, затем быстрый хак может быть ниже код (рабочий fiddle):

<!--           HERE ====| --> 
<div class="progressbar" data-animate="false" data-fill-color="#ff000"> 
    <div class="circle" data-percent="100"> 
    <div></div> 
    <p>Testing</p> 
    </div> 
</div> 
<!--       DIFFERENT COLOR HERE ====| --> 
<div class="progressbar" data-animate="false" data-fill-color="#000"> 
    <div class="circle" data-percent="30.5"> 
    <div></div> 
    <p>Testing</p> 
    </div> 
</div> 
$('.progressbar').each(function() { 
    // ... 

    value: percent/100, 
    thickness: 14, 

    fill: { 
    color: $(this).data('fill-color') // <===== HERE 
    } 

    }).on('circle-animation-progress', function(event, progress, stepValue) { 
    // ... 
+0

Большое спасибо @Uzbekjon. Но я использую параметр изменения цвета, например, этот шаблон https://devitems.com/html/resta-preview/resta/index.html , когда я нажимаю кнопку изменения цвета, как изменить цвет заливки? –

+0

Это не сработает. Этот плагин вам придется перерисовывать ваши элементы холста. – Uzbekjon

+0

Да, вы правы @ Uzzbekjon. У вас есть такой вариант - когда я нажимаю кнопку изменения цвета, страница перезагружается и перерисовывает мой цвет холста, а также цвет темы? –

Смежные вопросы