如何选择基于xy坐标的元素,而不是使用鼠标拖动,使用jquery?
如何选择基于XY坐标的元素而不是用jquery拖动鼠标?
如下所示,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);