在元素的定位中經常出錯,學習了一段時間,今天來總結一下其中遇到的一些問題
其中obj.offsetleft指的是乙個元素的計算後的位置==盒模型的尺寸:
1.offsetwidth=css寬+padding+border
2.offsetleft/offsettop到定位父級的距離
3.document.documentelement.clientwidth/clientheight 視窗的視覺化寬高
4.document.documentelement.scrolltop(ie ff) 或 document.body.scrolltop(chrome)視窗的滾動距離
5.window.onresize 視窗大小改變
6.window.onscroll 視窗滾動事件
其中div3的padding是20px,div2的padding是70px,div1的padding是110px,body的padding是10px;如果要算出div3相對於視窗左邊的距離是多少,用現有的方法是div3.offsetleft+div2.offsetleft+div1.offsetleft其值應該是70px+110px+10px=190px;然而可以用函式直接求出來。思路是求出div3到定位父級的距離,然後取定位父級到其定位父級的距離,以此輪推累加下去取到的就是其到瀏覽器視窗的距離:
首先要先定義l=t=0;然後可以取其到定位父級的距離,然後賦值給自己,然後再取其本身到定位父級的距離l+=obj.offsetleft或t+=obj.offsettop,再把定位父級賦值給自己obj=obj.offsetparent,一直到最後,然後返回l和t就是div到瀏覽器視窗的距離。
1.如果要獲取瀏覽器滾動條滾動的距離document.documentelement.scrolltop(ie ff) 這個是對ie和ff瀏覽器的,document.body.scrolltop(chrome)這個是對於chrome瀏覽器的。
2.如果獲取瀏覽器當前視窗的大小就要使用document.documentelement.clientwidth/clientheight 視窗視覺化寬高
3.window.onresize 瀏覽器視窗大小改變時觸發的事件
4.window.onscroll瀏覽器滾動條滾動時觸發的事件
盒子的大小 位置和邊框
我們都知道盒子是有寬度 高度和邊框的屬性的,我們頁面中的每乙個標籤和我們實際當中的盒子差不多,也是有這幾個屬性的,所以我們下面分別了解一下。1.1 頁面中的標籤都是盒子 html中所有元素 標籤 都可以看作是乙個盒子,也就是整個網頁都是由乙個個盒子構成,目的在於網頁更佳整潔規整 1.2 網頁由多個盒...
獲取滑鼠位置
clientx 設定或獲取滑鼠指標位置相對於視窗客戶區域的 x 座標,其中客戶區域不包括視窗自身的控制項和滾動條。clienty 設定或獲取滑鼠指標位置相對於視窗客戶區域的 y 座標,其中客戶區域不包括視窗自身的控制項和滾動條。offsetx 設定或獲取滑鼠指標位置相對於觸發事件的物件的 x 座標。...
獲取滑鼠位置
ie 下獲取 clientx y 測試測試 firefox 下獲取 clentx y 測試測試 進而核心可以公升階 var z e.clientx event.clientx 滑鼠橫座標 var f e.clienty event.clienty 滑鼠縱座標 這樣一來就可以在ie和firefox中都...