設定DIV的絕對位置

來源:互聯網
上載者:User
  • 1. 設定
    DIV的絕對位置(3566)
  • 2. JQuery
    越來越好之——放大鏡效果(1999)
  • 3. CodeSmith
    快速入門系列(1035)
  • 4. DataTable
    轉換為List<Model>的通用類(631)
  • 5. CodeSmith
    快速入門之四:模型層的產生(603)

在實際的開發中,我們經常要做到以下的效果:

 

雖然操作是很簡單,但是相信大多數人都是“拿來主義”者,不會關心代碼。
呵呵,其實今天自己也是被問到了,所以特別關注了一下DIV位置的確定。

廢話少說,先建立一個htm頁面

<
input 
type
="text"
>


<
div 
id
="divShow"
 style
="display:none;position:absolute;"
>
顯示的內容
</
div
>

display:none
,表示此層隱藏
position:absolute
,表示此層的為絕對位
置,方便後期進行絕對位置

添加事件,完成效果

<
script 
type
="text/javascript"
>

    
function
 showDiv(obj) {
        
//
 儲存元素


        
var
 el 
=
 obj;
        
//
 獲得元素的左位移量


        
var
 left 
=
 obj.offsetLeft;
        
//
 獲得元素的頂端位移量


        
var
 top 
=
 obj.offsetTop;

        
//
 迴圈獲得元素的父級控制項,累加左和頂端位移量


        
while
 (obj 
=
 obj.offsetParent) {
            left 
+=
 obj.offsetLeft;
            top 
+=
 obj.offsetTop;
        }

        
//
 設定層的座標並顯示


        document.all.divShow.style.pixelLeft 
=
 left;
        
//
 層的頂端距離為元素的頂端距離加上元素的高


        document.getElement("divShow").style.pixelTop 
=
 top 
+
 el.offsetHeight;  
        document.getElement("divShow").style.display 
=
 
"
block
"
;
    }

</
script
>


<
style
>

    #divShow 
    
{

        width
:
150px
;

        height
:
180px
;

        border-width
:
thin
;

        background
:
yellow
;

    
}


</
style
>


<
input 
type
="text"
 onfocus
="showDiv(this);"
>


<
div 
id
="divShow"
 style
="display:none;position:absolute;"
>
顯示的內容
</
div
>

註:offsetLeft和OffsetTop不是獲得元素和頁面的距離,只是獲得元素和父元素的的距離
      所以要進行while迴圈一層層累加距離,最後得到元素和頁面之間的距離
      層次關係:本元素->父元素->……>body->null,當為null時,退出while迴圈

點擊後的最終效果:)
原文地址:http://www.cnblogs.com/cj/archive/2008/10/17/1313643.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.