欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js獲取元素相對窗口位置的實現(xiàn)代碼

 更新時間:2014年09月28日 23:32:12   作者:前端開發(fā)  
這篇文章主要介紹了js獲取元素相對窗口位置的實現(xiàn)代碼,需要的朋友可以參考下

JS獲取元素的offsetTop,offsetLeft等屬性

obj.clientWidth //獲取元素的寬度

obj.clientHeight //元素的高度
obj.offsetLeft //元素相對于父元素的left
obj.offsetTop //元素相對于父元素的top
obj.offsetWidth //元素的寬度
obj.offsetHeight //元素的高度

區(qū)別:

clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = width + padding + border
offset比client多了border的寬度

//獲取元素的縱坐標(相對于窗口)
function getTop(e){
  var offset=e.offsetTop;
  if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
  return offset;
}
//獲取元素的橫坐標(相對于窗口)
function getLeft(e){
  var offset=e.offsetLeft;
  if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
  return offset;
}

之前也寫過一篇JS關于獲取元素位置的文章:JS獲取元素的offsetTop,offsetLeft等屬性,我們可以通過offsetTop和offsetLeft屬性獲取元素相對窗口的位置,但offsetTop和offsetLeft屬性都是相對于父元素定位的,而通常需要獲取位置的元素都不是在最外層,所以遍歷上級元素的offset相關屬性少不了。那效率就成問題了。

//獲取元素的縱坐標(相對于窗口)
function getTop(e){
var offset=e.offsetTop;
if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
return offset;
}
//獲取元素的橫坐標(相對于窗口)
function getLeft(e){
var offset=e.offsetLeft;
if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
return offset;
}

好在瀏覽器給我提供了相應的接口getBoundingClientRect,這個方法最早出現(xiàn)在IE瀏覽器中,后來的瀏覽器也跟著支持了這個方法,而且還更加完善,IE中只能獲取到元素的left,top,bottom,right的屬性,而后面的現(xiàn)代瀏覽器還能獲取到元素的width和

Chrome Firefox (Gecko) Internet Explorer Opera Safari
1.0 3.0 (1.9) 4.0 (Yes) 4.0

這里要注意的是,bottom是元素底部相對于窗口頂部的距離,而不是像css里面position的bottom相對于窗口底部,同理,rihgt屬性是元素最右邊相對于窗口左邊的距離。

var box = document.getElementById("box");
var pos = box.getBoundingClientRect();
box.innerHTML = "top:"+pos.top +
  "left:"+pos.left +
  "bottom:"+pos.bottom +
  "right:"+pos.right +
  "width:"+pos.width +
  "height:"+pos.height

原創(chuàng)文章,轉載請注明: 轉載自前端開發(fā)

相關文章

  • 寫入cookie的JavaScript代碼庫 cookieLibrary.js

    寫入cookie的JavaScript代碼庫 cookieLibrary.js

    cookieLibrary.js 寫入cookie的JavaScript代碼庫,需要的朋友可以參考下。
    2009-10-10
  • 詳談js中數(shù)組(array)和對象(object)的區(qū)別

    詳談js中數(shù)組(array)和對象(object)的區(qū)別

    下面小編就為大家?guī)硪黄斦刯s中數(shù)組(array)和對象(object)的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • js實現(xiàn)登錄驗證碼

    js實現(xiàn)登錄驗證碼

    本文主要介紹了js實現(xiàn)登錄驗證碼的方法,代碼簡潔明了,具有很好的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • 詳細解析let和const命令

    詳細解析let和const命令

    這篇文章主要介紹了詳細解析let和const命令,let和const是es6中新增的命令,一般let用來聲明變量而const則用來聲明常量,更多相關內(nèi)容感興趣的小伙伴可以參考一下
    2022-06-06
  • 關于TypeScript聲明合并

    關于TypeScript聲明合并

    這篇文章主要介紹了關于TypeScript聲明合并,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • JavaScript獲取字符串實際長度(包含中英文)

    JavaScript獲取字符串實際長度(包含中英文)

    這篇文章介紹了JavaScript獲取字符串實際長度(包含中英文)的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Webpack中publicPath使用詳解

    Webpack中publicPath使用詳解

    最近自己在搭建一個基于webpack的react項目,遇到關于output.publicPath和webpack-dev-server中publicPath的問題,所以自己研究了下并寫下本文記錄。感興趣的小伙伴們可以參考一下
    2021-06-06
  • js獲取隱藏元素的寬高

    js獲取隱藏元素的寬高

    本文主要介紹了使用js獲取隱藏元素寬高的解決方案以及代碼思路,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript變量聲明詳解

    JavaScript變量聲明詳解

    本文詳細向大家介紹了javascript變量聲明,并通過示例進行了具體分析,是篇非常不錯的文章,這里推薦給剛入門的jser。
    2014-11-11
  • JS實現(xiàn)模仿微博發(fā)布效果實例代碼

    JS實現(xiàn)模仿微博發(fā)布效果實例代碼

    這篇文章主要介紹了JS實現(xiàn)模仿微博發(fā)布效果實例代碼,有需要的朋友可以參考一下
    2013-12-12

最新評論