繁体   English   中英

jQuery在Y坐标之后找到下一个元素?

[英]JQuery find next element after Y coordinate?

假设我有一个div页面,它们都具有相同的类,并且我当前正在使用.scroll来通过.scrollTop监听和检索Y轴坐标。 我想做的是使用当前.scrollTop / Y位置之后的类名来定位下一个div。 有没有一种方法可以将数值传递给JQuery选择器,使其说“以'.my-class'查找下一个div,其起始Y位置大于当前Y位置”?

这应该为您做。 代码在下面注释。

 $(window).on('scroll', function(){ // with '.my-class' $('.my-class').removeClass('active') // who's beginning Y position is greater than current Y position .filter(function(){ return $(this).offset().top > $(window).scrollTop(); }).first() // find the next div .next() // do stuff .addClass('active'); }).trigger('scroll'); 
 body {background: #fff;} .my-class { padding: 2em; border: 1px solid #eee; margin: 1em; border-radius: 1em; } .my-class.active { border-color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> <div class="my-class">Test</div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM