布鲁斯怎么样?
我有代码想要在用户将页面滚动到元素位置时向元素添加一个类,并使用此代码:
$(window).on('scroll',function(){
Scroll = $(this).scrollTop();
if(Scroll >= $('img').position().top)
$('img').addClass('rotate');
});
我的HTML代码是这样的:
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
现在,当我运行代码时,rotate
类适用于所有img
标记。但我想将rotate
类添加到具有我在js if
句中所述条件的元素中!
我现在可以做些什么呢?你也可以看到jsfiddle!
答案 0 :(得分:3)
循环到所有img
并使用$(this)
添加类
$(window).on('scroll',function(){
Scroll = $(this).scrollTop();
$('img').each(function(){
if(Scroll >= $(this).position().top)
$(this).addClass('rotate');
});
});
答案 1 :(得分:3)
您可以使用jQuery的filter
来仅获取符合您要求的图片代码,例如:
Scroll = $(this).scrollTop();
$('img').filter(function(index, el) {
return Scroll >= el.position.top();
}).addClass('rotate');
答案 2 :(得分:0)
用这个
替换你的if语句$('img').each(function(index) {
if(Scroll >= $(this).position().top)
$(this).addClass('rotate');
});
答案 3 :(得分:0)
$(window).on('scroll', function() {
Scroll = $(this).scrollTop();
$('img').each(function() {
if (Scroll >= $(this).position().top)
$(this).addClass('rotate');
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
<div class="some-class">
<img src="http://blog.majidkn.com/wp-content/themes/majidkn2/images/mkn.png" class="feature-size">
</div>
遍历每个图像,然后使用this
上下文告诉当前图像