这是因为在你的5栏版本中,你已经直接添加了CSS类,而不是通过javascript编程。意味着动画立即发生。
<div class="skiller col">
<ul id="skill">
<li><span class="expand html5"><small>%70</small></span><em>HTML
5</em></li>
<li><span class="expand css3"><small>%90</small></span><em>CSS
3</em></li>
<li><span class=
"expand jquery"><small>%50</small></span><em>jQuery</em></li>
<li><span class=
"expand photoshop"><small>%10</small></span><em>Photoshop</em></li>
<li><span class=
"expand dreamweaver"><small>%100</small></span><em>Dreamweaver</em></li>
</ul>
</div>
在展开每一行后删除类,并将它们添加到JavaScript中,就像在一个条形版中一样。 我在工作中很不能做的这一个正确的版本,但尝试以下的javascript:
function isElementInViewport(){
var scrollTop = $(window).scrollTop();
var viewportHeight = $(window).height();
$('.skiller #skill:not(.html5)').each(function(){
var top = $(this).offset().top;
console.log(top);
console.log(scrollTop + viewportHeight);
if(scrollTop + viewportHeight >= top){
$(this).find('.expand').addClass('html5');
$(this).find('.expand1').addClass('css3');
$(this).find('.expand2').addClass('jquery');
$(this).find('.expand3').addClass('photoshop');
$(this).find('.expand4').addClass('dreamweaver');
console.log(true);
}else{
console.log(false);
}
});
}
$(窗口).scroll(isElementInViewport);
在删除HTML中添加的类之后,您还需要更改HTML展开类,如下所示:(注意:这是一个糟糕的实现,但请使用它作为基础以大大改善)。
<div class="skiller col">
<ul id="skill">
<li><span class="expand"><small>%70</small></span><em>HTML
5</em></li>
<li><span class="expand expand1"><small>%90</small></span><em>CSS
3</em></li>
<li><span class=
"expand expand2"><small>%50</small></span><em>jQuery</em></li>
<li><span class=
"expand expand3"><small>%10</small></span><em>Photoshop</em></li>
<li><span class=
"expand expand4"><small>%100</small></span><em>Dreamweaver</em></li>
</ul>
</div>
看看这个捣鼓它在行动的工作:http://jsfiddle.net/pCgYe/9/
重要:理想情况下,你想使你的代码的可重用性和可扩展性。我的“修补程序”是一个非常黑客的做法,并没有采用最佳做法。如果你永远不会再使用它,只需要尽快完成它就可以了,但我建议你考虑以更加干燥的方式重建它。
我试过这样做,但他们都像最后一个酒吧一样扩大到100%? (我对js有点新鲜,对我如此裸露):/ – Surge
嗨浪涌。请参阅我编辑的原始文章。这不是完美的,它会扩展所有的,但只有当你向下滚动他们。确保首先从HTML中删除特殊类。 – BenM
我从HTML中删除了类,并添加了更新后的js代码,但它仍然在做同样的事情。所有酒吧正在扩大到100%。 – Surge