我只是希望我的技能栏效果在我滚动到该部分时开始,例如我在我的介绍部分,当我向下滚动到技能部分时会触发效果:)非常感谢你!
HTML:
<div class="col-md-5 col-centered">
<div class="skillbar clearfix " data-percent="95%">
<div class="skillbar-title" style="background: #131313;"><span>Photography</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">95%</div>
</div>
<div class="skillbar clearfix " data-percent="85%">
<div class="skillbar-title" style="background: #131313;"><span>Videography</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">85%</div>
</div>
<div class="skillbar clearfix" data-percent="75%">
<div class="skillbar-title" style="background: #131313;"><span>Illustrator</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">75%</div>
</div>
<script>
jQuery('.skillbar').each(function(){
jQuery(this).find('.skillbar-bar').animate({
width:jQuery(this).attr('data-percent')
},6000);
});
</script>
CSS:
.skillbar {
position:relative;
display:block;
margin-bottom:15px;
width:100%;
background:#eee;
height:35px;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-webkit-transition:0.4s linear;
-moz-transition:0.4s linear;
-ms-transition:0.4s linear;
-o-transition:0.4s linear;
transition:0.4s linear;
-webkit-transition-property:width, background-color;
-moz-transition-property:width, background-color;
-ms-transition-property:width, background-color;
-o-transition-property:width, background-color;
transition-property:width, background-color;
}
.skillbar-title {
position:absolute;
top:0;
left:0;
font-weight:bold;
font-size:13px;
color:#fff;
background:#6adcfa;
-webkit-border-top-left-radius:3px;
-webkit-border-bottom-left-radius:4px;
-moz-border-radius-topleft:3px;
-moz-border-radius-bottomleft:3px;
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.skillbar-title span {
display:block;
background:rgba(0, 0, 0, 0.1);
padding:0 20px;
height:35px;
line-height:35px;
-webkit-border-top-left-radius:3px;
-webkit-border-bottom-left-radius:3px;
-moz-border-radius-topleft:3px;
-moz-border-radius-bottomleft:3px;
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.skillbar-bar {
height:35px;
width:0px;
background:#6adcfa;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
float: left;
}
.containers {
min-height: 100%;
height: 100vh;
}
.skill-bar-percent {
position:absolute;
right:10px;
top:0;
font-size:11px;
height:35px;
line-height:35px;
color:#444;
color:rgba(0, 0, 0, 0.4);
}
谢谢!
答案 0 :(得分:2)
您需要将窗口.scrollTop()
值与.offset().top
的容器div的垂直位置.skillbar
进行比较。当窗口滚动位置添加到窗口高度的值刚刚触发大于容器div的顶部偏移量时,或者换句话说,当:
jQuery(window).scrollTop() + jQuery(window).height() > jQuery('#skills').offset().top
然后将触发.animate()
功能。
** 注意我已将skills
ID分配给<div class="col-md-5 col-centered">
检查一下:
var skillsDiv = jQuery('#skills');
jQuery(window).on('scroll', function() {
var winT = jQuery(window).scrollTop(),
winH = jQuery(window).height(),
skillsT = skillsDiv.offset().top;
if (winT + winH > skillsT) {
jQuery('.skillbar').each(function() {
jQuery(this).find('.skillbar-bar').animate({
width: jQuery(this).attr('data-percent')
}, 6000);
});
}
});
body{
margin:0;
padding:0;
height:1200px;
}
#test{
height:800px;
}
.skillbar {
position:relative;
display:block;
margin-bottom:15px;
width:100%;
background:#eee;
height:35px;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-webkit-transition:0.4s linear;
-moz-transition:0.4s linear;
-ms-transition:0.4s linear;
-o-transition:0.4s linear;
transition:0.4s linear;
-webkit-transition-property:width, background-color;
-moz-transition-property:width, background-color;
-ms-transition-property:width, background-color;
-o-transition-property:width, background-color;
transition-property:width, background-color;
}
.skillbar-title {
position:absolute;
top:0;
left:0;
font-weight:bold;
font-size:13px;
color:#fff;
background:#6adcfa;
-webkit-border-top-left-radius:3px;
-webkit-border-bottom-left-radius:4px;
-moz-border-radius-topleft:3px;
-moz-border-radius-bottomleft:3px;
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.skillbar-title span {
display:block;
background:rgba(0, 0, 0, 0.1);
padding:0 20px;
height:35px;
line-height:35px;
-webkit-border-top-left-radius:3px;
-webkit-border-bottom-left-radius:3px;
-moz-border-radius-topleft:3px;
-moz-border-radius-bottomleft:3px;
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.skillbar-bar {
height:35px;
width:0px;
background:#6adcfa;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
float: left;
}
.containers {
min-height: 100%;
height: 100vh;
}
.skill-bar-percent {
position:absolute;
right:10px;
top:0;
font-size:11px;
height:35px;
line-height:35px;
color:#444;
color:rgba(0, 0, 0, 0.4);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="test">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Velit illum dolores fugit ut ratione quidem rem eveniet id, sapiente facilis maxime suscipit nostrum. Alias, voluptatum ipsa unde nemo magni atque!</div>
<div id="skills" class="col-md-5 col-centered">
<div class="skillbar clearfix " data-percent="95%">
<div class="skillbar-title" style="background: #131313;"><span>Photography</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">95%</div>
</div>
<div class="skillbar clearfix " data-percent="85%">
<div class="skillbar-title" style="background: #131313;"><span>Videography</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">85%</div>
</div>
<div class="skillbar clearfix" data-percent="75%">
<div class="skillbar-title" style="background: #131313;"><span>Illustrator</span></div>
<div class="skillbar-bar" style="background: #131313;"></div>
<div class="skill-bar-percent">75%</div>
</div>