当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery UI .position()用法及代码示例


.position( options )

返回:jQuery

说明:相对于另一个元素定位一个元素。

  • .position( options )
    添加的版本:1.8
    • options
      类型:Object
      • my(默认:"center")
        类型:String
        定义哪个位置on the element being positioned与目标元素对齐:"horizontal vertical" 对齐。单个值,例如"right"将归一化为"right center","top"将归一化为"center top"(遵循 CSS 约定)。可接受的水平值:"left","center","right".可接受的垂直值:"top","center","bottom".例子:"left top"或者"center center".每个维度还可以包含偏移量,以像素或百分比为单位,例如,"right+10 top-25%".百分比偏移量是相对于被定位的元素的。
      • at(默认:"center")
        类型:String
        定义哪个位置on the target element对齐定位的元素:"horizontal vertical" 对齐。见my有关可能值的完整详细信息的选项。百分比偏移量是相对于目标元素的。
      • of(默认:null)
        类型:SelectorElementjQueryEvent
        要定位的元素。如果您提供选择器或 jQuery 对象,将使用第一个匹配元素。如果您提供事件对象,将使用 pageXpageY 属性。示例:"#top-menu"
      • collision(默认:"flip")
        类型:String

        当定位的元素在某个方向溢出窗口时,将其移动到另一个位置。与 my at 类似,它接受单个值或水平/垂直对,例如 "flip""fit""fit flip""fit none"

        • "flip" :将元素翻转到目标的另一侧,并再次运行碰撞检测以查看它是否适合。将使用允许更多元素可见的那一侧。
        • "fit" :将元素从窗口边移开。
        • "flipfit" :首先应用翻转逻辑,将元素放置在允许更多元素可见的任何一侧。然后应用拟合逻辑以确保尽可能多的元素可见。
        • "none":不应用任何碰撞检测。
      • using(默认:null)
        类型:Function()
        指定后,实际的属性设置将委托给此回调。接收两个参数:第一个是topleft应该设置并且可以转发到的位置的值.css()或者.animate().

        第二个提供关于两个元素的位置和尺寸的反馈,以及对它们的相对位置的计算。 targetelement 都具有以下属性:elementlefttopwidthheight。此外,还有 horizontalverticalimportant ,为您提供十二个潜在方向,例如 { horizontal: "center", vertical: "left", important: "horizontal" }

      • within(默认:window)
        类型:SelectorElementjQuery
        元素定位在其中,影响碰撞检测。如果您提供选择器或 jQuery 对象,将使用第一个匹配元素。

jQuery UI .position() 方法允许您相对于窗口、文档、另一个元素或光标/鼠标定位元素,而无需担心父元素的偏移。

Note: jQuery UI does not support positioning hidden elements.

这是一个独立的 jQuery 插件,不依赖于其他 jQuery UI 组件。

这个插件扩展了 jQuery 的内置 .position() 方法。如果没有加载 jQuery UI,调用 .position() 方法可能不会直接失败,因为该方法仍然存在。但是,不会发生预期的行为。

例子:

一个简单的 jQuery UI 位置示例。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>position demo</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
  <style>
  #targetElement {
    height: 200px;
    margin: 50px;
    background: #9cf;
  }
  .positionDiv {
    position: absolute;
    width: 75px;
    height: 75px;
    background: #080;
  }
  </style>
  <script src="//code.jquery.com/jquery-1.12.4.js"></script>
  <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
 
<div id="targetElement">
  <div class="positionDiv" id="position1"></div>
  <div class="positionDiv" id="position2"></div>
  <div class="positionDiv" id="position3"></div>
  <div class="positionDiv" id="position4"></div>
</div>
 
<script>
$( "#position1" ).position({
  my: "center",
  at: "center",
  of: "#targetElement"
});
 
$( "#position2" ).position({
  my: "left top",
  at: "left top",
  of: "#targetElement"
});
 
$( "#position3" ).position({
  my: "right center",
  at: "right bottom",
  of: "#targetElement"
});
 
$( document ).mousemove(function( event ) {
  $( "#position4" ).position({
    my: "left+3 bottom-3",
    of: event,
    collision: "fit"
  });
});
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jqueryui.com大神的英文原创作品 .position()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。