javascript - 当滚动触发时,JQuery 多次重复百分号

标签 javascript jquery

我有 4 个进度条,当我在可见位置向下滚动时,百分比会显示多次。我正在尝试解决这个问题,但花了我所有的时间。当我添加 jquery 代码来触发滚动动画时,我得到了所有的重复。 任何建议将不胜感激。

 $(window).scroll( function(){

    var bottom_of_window = $(window).scrollTop() + $(window).height();
   
	        $(".skills").addClass("active")
$(".skills .skill .skill-bar span ").each(function() {
   $(this).animate({
      "width": $(this).parent().attr("data-bar") + "%"
   },0);
 
   $(this).append('<b>' + $(this).parent().attr("data-bar") + '%</b>');
});


setTimeout(function() {
   $(".skills .skill .skill-bar  span b ") .animate({"opacity":"1"},1000);
}, 2000);
      });
/*SKILLS*/
.skills,
.skills .skill,
.skills .skill ,
.skills .skill .skill-bar {
   width: 100%;
   float: left;
}

.skill-title{
  float:left;
}

.skills {
   padding:13px;
  margin-top:10%;
}

.skills .skill {
   margin-bottom: 30px;
  
}

.skills .skill .skill-title {
   color: black;
   margin-bottom: 10px;
   font-weight: 400;
   font-size: 139%;
  opacity:.8;
  
}

.skills .skill .skill-bar {
   width: 0;
   height: 16px;
   background: #f0f0f0;
   transition: 1s cubic-bezier(1, 0, .5, 1);
   -webkit-transition: 1s cubic-bezier(1, 0, .5, 1);
   -ms-transition: 1s cubic-bezier(1, 0, .5, 1);
  
}

.skills.active .skill .skill-bar {
   width: 100%;
  
}

.skills .skill .skill-bar span {
   float: left;
   width: 0%;
   background: #1D91F2;
   height: 15px;
   position: relative;
   transition: 1s cubic-bezier(1, 0, .5, 1);
   -webkit-transition: 1s cubic-bezier(1, 0, .5, 1);
   -ms-transition: 1s cubic-bezier(1, 0, .5, 1);
  
}

.skills .skill .skill-bar span b {
   float: left;
   width: 100%;
   position: relative;
   text-align: right;
   opacity: 0;
   font-size: 145%;
   color: #1D91F2;
   font-weight: 400;
   top: -30px;
  
}


.info-list{
  font-size:25px;
  list-style: none;
  text-align: left;
  letter-spacing: .4rem;
	line-height: 4.1rem;
	  margin-top:10%;
 
  
}

.skills-part{
  width: 100%;
  max-width: 700px;
  
}


.h9-information{
   font-family: 'Squada One', cursive;

}

.h10-skills{
 font-family: 'Squada One', cursive;  
  
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="skills-part col-md-6">
  <h10 class="h10-skills"style="font-size:30px; opacity:0.9;"><strong>SKILLS</strong></h10>
<div class="skills">
   <!-- skill -->
   <div class="skill">
      <!-- title -->
      <div class="skill-title"><strong>
         HTML5</strong>
      </div>
      <!-- bar -->
      <div class="skill-bar" data-bar="90"><span></span></div>
   </div>
   <!-- #skill -->
   <!-- skill -->
   <div class="skill">
      <!-- title -->
      <div class="skill-title"><strong>
         CSS3
      </strong></div>
      <!-- bar -->
      <div class="skill-bar" data-bar="70"><span></span></div>
   </div>
   <!-- #skill -->
   <!-- skill -->
   <div class="skill">
      <!-- title -->
      <div class="skill-title"><strong>
         JQUERY
      </strong></div>
      <!-- bar -->
      <div class="skill-bar" data-bar="60"><span></span></div>
   </div>
   <!-- #skill -->
   <!-- skill -->
   <div class="skill">
      <!-- title -->
      <div class="skill-title"><strong>
         JAVASCRIPT
      </strong></div>
      <!-- bar -->
      <div class="skill-bar" data-bar="80"><span></span></div>
   </div>
   <!-- #skill -->
</div>

You can see all the duplicating

最佳答案

不必不断追加数据,只需更新 html,如下所示:

$(this).html('<b>' + $(this).parent().attr("data-bar") + '%</b>');

关于javascript - 当滚动触发时,JQuery 多次重复百分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46030126/

相关文章:

javascript - 联系表上的错误

javascript - 从 Chrome 扩展程序访问网站数据

javascript - JQuery 对已包含回调的函数进行 promise

javascript - 计算 div 内的输入并向每个 jquery 添加 +1

javascript - 使用数组内的对象进行解构赋值

javascript - 处理浮点错误的最佳方法是什么?

javascript - ResizeSensor具体如何使用?

php - 如何通过AJAX将Jquery可拖动UI与mysql连接

javascript - 如何从 jQuery 中的段落中删除不需要的元素

javascript - Knockout.js:对表和 foreach 中的分组值求和