JqueryUI - position() 定位方法
在本章中,我们将看到 jqueryUi 的实用方法之一,position() 方法。 position() 方法允许您相对于另一个元素或鼠标事件定位一个元素。
jQuery UI 扩展了 jQuery 核心的 .position() 方法,使您可以像自然地向其他人描述元素一样描述您希望如何定位元素。 您不是在处理数字和数学,而是在处理有意义的单词(例如左和右)和关系。
语法
以下是 position() 方法的语法 −
.position( options )
其中 options 是 Object 类型,并提供指定如何定位包装集元素的信息。 下表列出了可与此方法一起使用的不同选项−
序号 | 选项 & 说明 |
---|---|
1 | my
此选项指定包装元素(被重新定位的元素)的位置以与目标元素或位置对齐。 默认情况下,它的值为 center。 |
2 | at
此选项是 String 类型,指定要对齐重新定位的元素的目标元素的位置。 采用与 my 选项相同的值。 默认情况下,它的值为 center。 |
3 | of
这是 Selector 或 Element 或 jQuery 或 Event 类型。 它标识要根据其重新定位包装元素的目标元素,或包含用作目标位置的鼠标坐标的 Event 实例。 默认情况下,它的值为 null。 |
4 | collision
此选项是 String 类型,指定定位元素在任何方向超出窗口时应用的规则。 默认情况下,它的值为 flip。 |
5 | using
该选项是一个替代改变元素位置的内部函数的函数。 使用单个参数为每个包装元素调用,该参数由对象散列组成,left 和 top 属性设置为计算的目标位置,元素设置为函数上下文。默认情况下,它的值为 null。 |
6 | within
此选项是一个选择器或元素或 jQuery 元素,并允许您指定将哪个元素用作碰撞检测的边界框。 如果您需要在页面的特定部分中包含定位元素,这会派上用场。 默认情况下,它的值为 window。 |
示例
下面的例子演示了 position 方法的使用。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>jQuery UI position method Example</title> <link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel = "stylesheet"> <script src = "https://code.jquery.com/jquery-1.10.2.js"></script> <script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> <!-- CSS --> <style> .positionDiv { position: absolute; width: 75px; height: 75px; background: #b9cd6d; } #targetElement { width: 300px; height: 500px; padding-top:50px; } </style> <script> $(function() { // Position the dialog offscreen to the left, but centered vertically $( "#position1" ).position({ my: "center", at: "center", of: "#targetElement" }); $( "#position2" ).position({ my: "left top", at: "left top", of: "#targetElement" }); $( "#position3" ).position({ my: "right-10 top+10", at: "right top", of: "#targetElement" }); $( document ).mousemove(function( event ) { $( "#position4" ).position({ my: "left+3 bottom-3", of: event, collision: "fit" }); }); }); </script> </head> <body> <div id = "targetElement"> <div class = "positionDiv" id = "position1">Box 1</div> <div class = "positionDiv" id = "position2">Box 2</div> <div class = "positionDiv" id = "position3">Box 3</div> <div class = "positionDiv" id = "position4">Box 4</div> </div> </body> </html>
让我们将上面的代码保存在一个 HTML 文件 positionmethodexample.htm 中,并在支持 javascript 的标准浏览器中打开它,您应该会看到以下输出。 现在,您可以查看结果 −
In this example we see that −
Box 1 与 div 元素的 中心对齐(水平和垂直)。
Box 2 与 div 元素 的左上角(水平和垂直)对齐。
Box 3显示在窗口的右上角,但要留一些填充以使消息更加突出。 这是使用 my 或 at 的水平和垂直值完成的。
对于Box 4,of 值被设置为一个事件对象。 这是一个与指针相关联的事件,并随鼠标事件移动。