Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动显示多个动画_Javascript_Jquery_Animation_Jquery Animate - Fatal编程技术网

Javascript 滚动显示多个动画

Javascript 滚动显示多个动画,javascript,jquery,animation,jquery-animate,Javascript,Jquery,Animation,Jquery Animate,我正试图使我的网站上的进度条动画滚动。所以我设法得到了一个进度条来在滚动条上设置动画。我现在的问题是,我有多个进度条来设置动画(危险、警告、成功)等等。我必须创建新元素吗?这是小提琴: //检查元素是否在视口中 函数IsElementViewPort(elem){ 变量$elem=$(elem); //获取页面的滚动位置。 var scrollem=((navigator.userAgent.toLowerCase().indexOf('webkit')!=-1)?'body':'html');

我正试图使我的网站上的进度条动画滚动。所以我设法得到了一个进度条来在滚动条上设置动画。我现在的问题是,我有多个进度条来设置动画(危险、警告、成功)等等。我必须创建新元素吗?这是小提琴:

//检查元素是否在视口中
函数IsElementViewPort(elem){
变量$elem=$(elem);
//获取页面的滚动位置。
var scrollem=((navigator.userAgent.toLowerCase().indexOf('webkit')!=-1)?'body':'html');
var viewportTop=$(scrolllem.scrollTop();
var viewportBottom=viewportTop+$(window).height();
//获取元素在页面上的位置。
var elemTop=Math.round($elem.offset().top);
var elemBottom=elemTop+$elem.height();
返回((elemTopviewportTop));
}
//检查是否是开始动画的时间。
函数检查动画(elem){
变量$elem=$(elem);
if($elem.hasClass('start'))返回;
如果(IsElementViewPort($elem)){
$elem.addClass('start');
//动画进度条
变量栏=$(“.进度栏警告”);
$(函数(){
$(条形)。每个(函数(){
bar_width=$(this.attr('aria-valuenow');
$(此).width(条形图宽度+'%');
});
});
}
}
//捕获滚动事件
$(窗口)。滚动(函数(){
选中动画($('.progress bar');
});

你们知道如何使所有的进度条在滚动条上动画化吗?

对你们的函数做了一些修改,现在我们开始:

  // Check if elem is in viewport
  function isElementInViewport(elem) {
      var $elem = elem;

      // Get the scroll position of the page.
      var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
      var viewportTop = $(scrollElem).scrollTop();
      var viewportBottom = viewportTop + $(window).height();

      // Get the position of the element on the page.
      var elemTop = Math.round($elem.offset().top);
      var elemBottom = elemTop + $elem.height();

      return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
  }

  // Check if it's time to start the animation.
  function checkAnimation(elem) {
      var $elem = elem;
      if ($elem.hasClass('start')) return;
      if (isElementInViewport($elem)) {
          $elem.addClass('start');

          //animated progess bars
                  bar_width = $elem.attr('aria-valuenow');
                  $elem.css('width',bar_width + '%');
      }
  }


  // Capture scroll events
  $(window).scroll(function () {
      $('.progress-bar').each(function(){
          checkAnimation($(this));
      });
  });
//检查元素是否在视口中
函数IsElementViewPort(elem){
var$elem=elem;
//获取页面的滚动位置。
var scrollem=((navigator.userAgent.toLowerCase().indexOf('webkit')!=-1)?'body':'html');
var viewportTop=$(scrolllem.scrollTop();
var viewportBottom=viewportTop+$(window).height();
//获取元素在页面上的位置。
var elemTop=Math.round($elem.offset().top);
var elemBottom=elemTop+$elem.height();
返回((elemTopviewportTop));
}
//检查是否是开始动画的时间。
函数检查动画(elem){
var$elem=elem;
if($elem.hasClass('start'))返回;
如果(IsElementViewPort($elem)){
$elem.addClass('start');
//动画进度条
条形宽度=$elem.attr('aria-valuenow');
$elem.css('width',bar_width+'%');
}
}
//捕获滚动事件
$(窗口)。滚动(函数(){
$('.progress bar')。每个(函数(){
选中动画($(this));
});
});
  // Check if elem is in viewport
  function isElementInViewport(elem) {
      var $elem = elem;

      // Get the scroll position of the page.
      var scrollElem = ((navigator.userAgent.toLowerCase().indexOf('webkit') != -1) ? 'body' : 'html');
      var viewportTop = $(scrollElem).scrollTop();
      var viewportBottom = viewportTop + $(window).height();

      // Get the position of the element on the page.
      var elemTop = Math.round($elem.offset().top);
      var elemBottom = elemTop + $elem.height();

      return ((elemTop < viewportBottom) && (elemBottom > viewportTop));
  }

  // Check if it's time to start the animation.
  function checkAnimation(elem) {
      var $elem = elem;
      if ($elem.hasClass('start')) return;
      if (isElementInViewport($elem)) {
          $elem.addClass('start');

          //animated progess bars
                  bar_width = $elem.attr('aria-valuenow');
                  $elem.css('width',bar_width + '%');
      }
  }


  // Capture scroll events
  $(window).scroll(function () {
      $('.progress-bar').each(function(){
          checkAnimation($(this));
      });
  });