Плагин jQuery, как показано ниже, будет выбирать все элементы, которые (частично) находятся в положении> = x и> = y.
(function($){
$.fn.filterXY = function(x, y){
return this.filter(function(){
var $this = $(this),
offset = $this.offset(),
width = $this.width(),
height = $this.height();
return offset.left + width >= x
&& offset.top + height >= y;
});
}
})(jQuery);
Примеры:
$("*").filterXY(0,0);
$("div").filterXY(100, 0);
<час />
Обновление: плагин для фильтрации всех элементов между x1 и x2
Демо: http://jsfiddle.net/yx4sN/7/
(function($){
$.fn.inRangeX = function(x1, x2){
// Accepting selectors and DOM elements
if (typeof x1 == "string" && +x1 != x1 || x1 instanceof Element) {
x1 = $(x1);
}
if (typeof x2 == "string" && +x1 != x1 || x1 instanceof Element) {
x2 = $(x2);
}
// Accepting jQuery objects
if (x1 instanceof $) {
x1 = x1.offset().left;
}
if (x2 instanceof $) {
x2 = x2.offset().left;
}
x1 = +x1;
x2 = +x2;
// Make sure that x1 < x2
if (x1 > x2) {
var x = x1;
x1 = x2;
x2 = x;
}
return this.filter(function(){
var $this = $(this),
offset = $this.offset(),
rightSide = $this.width() + offset.left;
return offset.left >= x1
&& rightSide <= x2;
});
}
})(jQuery);