Активируйте анимацию Progress Bar JS, когда пользователь увидит Контент

Так что я буквально часами проводил на форумах и в гугле, пытаясь найти похожий случай с моим, но ничего не смог подыскать. Я использую библиотеку ProgressBar.js для анимации моих индикаторов выполнения и не могу найти, как их анимировать, когда пользователь действительно их видит. они оживляются до того, как пользователь действительно доберется до контента, вот мой код

   <div class="tech-skills" class="tech">

        <div>
            <h3>Cloud Computing</h3>
            <div id="cloud" class="cloud"></div>
        </div>

        <div>
            <h3>Infrastructure</h3>
            <div id="infra" class="infra"></div>
        </div>

        <div>
            <h3>Windows Azure</h3>
            <div id="azure" class="azure"></div>
        </div>

        <div>
            <h3>DevOps</h3>
            <div id="devops" class="devops"></div>
        </div>

        <div>
            <h3>Pre-Sales</h3>
            <div id="sales" class="sales"></div>
        </div>

</div>

Код JS

   var cloudcomputing = new ProgressBar.Line('#cloud', {
     color: '#4AAACA',
     duration: 3000,
     easing: 'easeInOut',
     text: {
    // Initial value for text.
    // Default: null
    value: '94%',
    style:{
        color:"black",
        position: 'absolute',
        left:'103%',
        top: '-25px',
    }

    }
  });

  cloudcomputing.animate(0.95);

  // Second 

     var infrastructure = new ProgressBar.Line('#infra', {
       color: '#4AAACA',
       duration: 3000,
       easing: 'easeInOut',
       text: {
    // Initial value for text.
    // Default: null
    value: '80%',
    style:{
        color:"black",
        position: 'absolute',
        left:'103%',
        top: '-25px',

    }

       }
  });

  infrastructure.animate(0.8);


   // Third 

     var windowsazure = new ProgressBar.Line('#azure', {
       color: '#4AAACA',
       duration: 3000,
       easing: 'easeInOut',
       text: {
    // Initial value for text.
    // Default: null
    value: '83%',
    style:{
        color:"black",
        position: 'absolute',
        left:'103%',
        top: '-25px',
    }

   }
 });

    windowsazure.animate(0.83);

  // Fourth


    var devops = new ProgressBar.Line('#devops', {
color: '#4AAACA',
duration: 3000,
easing: 'easeInOut',
text: {
    // Initial value for text.
    // Default: null
    value: '80%',
    style:{
        color:"black",
        position: 'absolute',
        left:'103%',
        top: '-25px',
    }

   }
 });

   devops.animate(0.8);

 // Fifth 

    var presales = new ProgressBar.Line('#sales', {
       color: '#4AAACA',
       duration: 3000,
       easing: 'easeInOut',
       text: {
    // Initial value for text.
    // Default: null
       value: '73%',
       style:{
        color:"black",
        position: 'absolute',
        left:'103%',
        top: '-25px',
    }
      }
     });

      presales.animate(0.7);


     // Personal Skills Animation

    // First




var vision = new ProgressBar.Circle('#vision', {
    color: 'url(#gradient1)',
    duration: 3000,
    easing: 'easeInOut',
    strokeWidth: 3,
    text: {
        // Initial value for text.
        // Default: null
        value: '83%',
        style:{

            position: 'absolute',
            left: '48.5%',
            top: '40%',
        }

    }

});
vision.svg.insertAdjacentHTML('afterbegin', Gradient1);   
vision.animate(0.84);

// Second

var active = new ProgressBar.Circle('#listening', {
    color: 'url(#gradient2)',
    duration: 3000,
    easing: 'easeInOut',
    strokeWidth: 3,
    text: {
        // Initial value for text.
        // Default: null
        value: '95%',
        style:{
            position: 'absolute',
            left: '40%',
            top: '40%',
        }

    }
});
active.svg.insertAdjacentHTML('afterbegin', Gradient2);   
active.animate(0.9);

// Third

var problem = new ProgressBar.Circle('#solving', {
    color: 'url(#gradient3)',
    duration: 3000,
    easing: 'easeInOut',
    strokeWidth: 3,
    text: {
        // Initial value for text.
        // Default: null
        value: '75%',
        style:{
            position: 'absolute',
            left: '40%',
            top: '40%',
        }

    }
});

problem.svg.insertAdjacentHTML('afterbegin', Gradient3);   
problem.animate(0.8);

0 ответов

Другие вопросы по тегам