Jquery定位方法
Jquery position method
根据Jquery API文档:
.position()返回: 对象
Description: 获取匹配元素集合中第一个元素相对于偏移量父元素的当前坐标。
这个方法不接受任何参数。在这里引用
但是在某个地方我发现使用这个:
$("#position1").position({
my: "center",
at: "center",
of: "#targetElement"
});
一个对象被传递给position方法,这是不是违反了API文档?似乎上面传递给对象的属性有一些特殊的含义。这些属性说明了什么,它们的作用是什么?我是一个完全的jquery初学者。所以可能我错了。
这个.position()
的变体是jQuery UI位置实用程序的一部分。它为您提供了一种简单的方法,以某种方式将一个元素相对于另一个元素(或鼠标光标)放置。
你完全正确,原来的position()
方法不接受参数…但是:
这个插件扩展了jQuery内置的。position()方法。如果没有加载jQuery UI,调用.position()方法可能不会直接失败,因为该方法仍然存在。但是,预期的行为不会发生。
查看- http://docs.jquery.com/UI/API/1.8/Position
该功能是在jqueryUI的位置实用程序,而不是在核心jQuery
让我们把它带到codez !快速浏览一下jQuery 1.9.1源代码可以发现:
position: function() {
if ( !this[ 0 ] ) {
return;
}
var offsetParent, offset,
parentOffset = { top: 0, left: 0 },
elem = this[ 0 ];
// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
if ( jQuery.css( elem, "position" ) === "fixed" ) {
// we assume that getBoundingClientRect is available when computed position is fixed
offset = elem.getBoundingClientRect();
} else {
// Get *real* offsetParent
offsetParent = this.offsetParent();
// Get correct offsets
offset = this.offset();
if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
parentOffset = offsetParent.offset();
}
// Add offsetParent borders
parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
}
// Subtract parent offsets and element margins
// note: when an element has margin: auto the offsetLeft and marginLeft
// are the same in Safari causing offset.left to incorrectly be 0
return {
top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
};
},
不读取参数,不使用参数。无论你看到什么代码,它都不是jQuery核心。最有可能的原因是原作者使用了jQuery UI,它扩展了该方法。
根据jQuery API的位置
- my:定义要对齐的元素的位置
- at:定义要对齐的元素在目标元素上的哪个位置,
-
of:用于定位元素。如果您提供了一个选择器,那么将使用第一个匹配元素。例如:
"#targetElement"
。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- CSS-如何定位内容数据标题
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- Z 索引绝对定位元素低于父级,具有 z 索引解决方法
- 使用此 javascript 在 IE7 中收到“对象不支持此属性或方法”错误,以及选项卡未正确定位的问题
- 定位CSS悬停菜单的正确方法是什么
- 地理定位方法,看看用户是否在特定区域
- 在Javascript中迭代Json结构以定位谷歌地图标记的正确方法
- Jquery定位方法
- 用导航器地理定位以外的方法获得经纬度
- 有没有一种方法可以在img弹出自己的窗口后用css来定位它?
- HTML查找和定位元素或文本的简单方法
- 保持车辆连续定位的最佳方法
- 是否有一种简单的方法来知道如果一个随机定位的对象将最终在其他对象的顶部,并触发碰撞在物理