您如何以一种优雅的方式使用jQuery?


  将z属性(例如:红色背景)应用于div parent的每个子级
  而其位置在给定的最高偏移量y之上。


我已经尝试了不同的方式,但是我对其中的任何一个都不满意...
我知道一定有一种简短而优雅的方法来做...

最佳答案

既然您说您已经尝试了几种方法,并且您只是在寻找更优雅的东西,所以我假设您已经计算出偏移量部分,而我自己就使用offset。根据需要修改该部分。为了优雅起见,您可以创建一个自定义选择器来检查顶部偏移量:

$.expr[':'].above = function(obj, index, meta, stack) {
    return $(obj).offset().top < meta[3];
}


然后可以这样查询它:

$('#myParentDiv').find('div:above(100)').css('background-color', 'red');


当然这也可以表示为

$('#myParentDiv div:above(100)').css('background-color', 'red');


或者,如评论中指出的

var y = 100;
$('#myParentDiv div:above('+y+')').css('background-color', 'red');

10-08 17:50