DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> jQuery基礎知識 >> 5.4 元素的位置offset()和position()
5.4 元素的位置offset()和position()
編輯:jQuery基礎知識     

在jQuery中,有些時候我們需要獲取元素的具體位置,然後進行必要操作。例如 學習網的“在線調色板”中,就是根據元素的位置來確定顏色值的。

在jQuery中,如果我們想要獲取元素的位置,有2種方法:

  • (1)offset();
  • (2)position();

一、offset()

在jQuery中,我們可以使用offset()方法用於“獲取”或“設置”元素相對於“當前文檔”(也就是浏覽器窗口)的偏移距離。

語法:

 
$().offset().top;
$().offset().left

說明:

$().offset()返回的是一個坐標對象,該對象有2個屬性:top和left。

$().offset().top表示獲取元素相對於當前文檔“頂部”的距離。

$().offset().left表示獲取元素相對於當前文檔“左部”的距離。

這兩種方法返回的都是一個數字(不帶單位)。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css">
        body
        {
            text-align:center;
        }
        #main
        {
            text-align:left;
            margin:100px auto;
            padding:15px;
            border:1px dashed gray;
            display:inline-block;
        } 
        #box1,#box2
        {
            display:inline-block;
            height:100px;
            width:100px;
        }
        #box1
        {
            background-color:Red;
        }
        #box2
        {
            background-color:Orange;
        }
    </style>
    <script type="text/javascript" src="jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn").click(function () {
                //獲取box2距離頂部的距離
                var top = $("#box2").offset().top;
                //獲取box2距離左部的距離
                var left = $("#box2").offset().left;
                var str = "box2與文檔頂部距離是:" + top + "\n" + "box2與文檔左部距離是:" + left;
                alert(str);
            })
        })
    </script>
</head>
<body>
    <div id="main">
        <div id="box1"></div><br />
        <div id="box2"></div><br />
        <input id="btn" type="button" value="獲取" />
    </div>
</body>
</html>

在浏覽器預覽效果如下:

分析:

當我們點擊“獲取”按鈕,就可以獲取id為box2的元素相對當前文檔頂部距離以及左部距離。

二、position()

在jQuery中,我們可以使用position()方法來“獲取”或“設置”當前元素相對於“其被定位的祖輩元素”的偏移距離。

語法:

 
$().position().top
$().position().left

說明:

$().position()返回的是一個坐標對象,該對象有2個屬性:top和left。

$().position().top表示元素相對於被定位的祖輩元素的頂部的垂直距離。

$().position().left表示元素相對於被定位的祖輩元素的左部的水平距離。

這兩種方法返回的都是一個數字(不帶單位)。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <style type="text/css"> 
        #father
        {
            position:relative;
            width:200px;
            height:200px;
            background-color:orange;
        }
        #son
        {
            position:absolute;
            top:20px;
            left:50px;
            width:50px;
            height:50px;
            background-color:red;
        }
    </style>
    <script type="text/javascript" src="jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn").click(function () {
                var top = $("#son").position().top;
                var left = $("#son").position().left;
                var str = "子元素相對父元素頂部距離是:" + top + "\n" + "子元素相對父元素左部距離是:" + left;
                alert(str);
            })
        })
    </script>
</head>
<body>
    <div id="father">
        <div id="son"></div>
    </div>
    <input id="btn" type="button" value="獲取" />
</body>
</html>

在浏覽器預覽效果如下:

分析:

當我們點擊“獲取”按鈕之後,就可以獲取所選元素相對父元素的垂直相對距離以及水平相對距離。在CSS定位布局中,如果我們對父元素設置position:relative,我們就可以使用position:absolute來設置子元素相對於父元素的定位距離,這就是我們常說的“外相對,內絕對”。如果大家對這個例子不太懂的話,建議先去打好CSS基礎先。

在web應用開發中,獲取元素的坐標是非常常見的操作。jQuery的offset()和position()的結合使用,方便我們快速獲取元素坐標,大家必須予以重視。當然在以後教程中,我們會結合這些技術給大家講解實際開發的綜合應用實例。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved