當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。