js 獲取圖像縮放后的實(shí)際寬高,位置等信息
項(xiàng)目中遇到圖片實(shí)際顯示尺寸的判定問題,圖片可能被縮放過,所以實(shí)際顯示的寬高無法通過常見的各種width,height拿到(都是得到圖像的自然寬度或者字面寬度,并非實(shí)際顯示結(jié)果)
在網(wǎng)上百度了一大圈也沒有找到,今天早上偶然找到2個(gè)很方便的方法:
object.getClientRects();和object.getBoundingClientRect();
可以輕易獲得當(dāng)前元素的絕對(duì)位置(不含scrollLeft和scrollTop,需要用的話單獨(dú)加上去)和顯示出來的實(shí)際寬高
getClientRects 和 getBoundingClientRect 的區(qū)別
getClientRects 返回一個(gè)TextRectangle集合,就是TextRectangleList對(duì)象。
getBoundingClientRect 返回 一個(gè)TextRectangle對(duì)象,即使DOM里沒有文本也能返回TextRectangle對(duì)象.
瀏覽器差異:
除了safari,firefox2.0外所有瀏覽器都支持getClientRects和getBoundingClientRect,
firefox 3.1給TextRectangle增加了 width 和 height。
ie 和非ie瀏覽器在使用getClientRects還是有些差別的,ie獲取TextRectangleList的范圍很大。而非ie獲取的范圍比較小, 只有display:inline的對(duì)象才能獲取到TextRectangleList,例如em i span 等標(biāo)簽。
通過測試,至少Chrome 2+\Safari 4\Firefox3.5\0pera 9.63+已經(jīng)支持getBoundingClientRect方法。
出于瀏覽器兼容的考慮,現(xiàn)在用得最多的是getBoundingClientRect,經(jīng)常用來獲取一個(gè)element元素的viewport坐標(biāo)。
MDN關(guān)于getBoundingClientRect的詳細(xì)介紹:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
百度判斷手機(jī)終端并自動(dòng)跳轉(zhuǎn)js代碼及使用實(shí)例
這篇文章主要介紹了百度判斷手機(jī)終端并自動(dòng)跳轉(zhuǎn)js代碼及使用實(shí)例,需要的朋友可以參考下2014-06-06小程序圓形進(jìn)度條及面積圖實(shí)現(xiàn)的方法
做微信小程序的朋友大都接觸過或自己動(dòng)手寫過自定義組件,下面這篇文章主要給大家介紹了關(guān)于小程序圓形進(jìn)度條及面積圖實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05利用js判斷瀏覽器類型(是否為IE,Firefox,Opera瀏覽器)
我們開發(fā)的人來說經(jīng)常要加個(gè)判斷,要不可能某些功能沒法正常使用。要是沒加個(gè)判斷就會(huì)給大家?guī)硇┞闊?/div> 2013-11-11識(shí)別操作系統(tǒng)是不是vista的js代碼
識(shí)別操作系統(tǒng)是不是vista的js代碼...2007-08-08JS 頁面自動(dòng)加載函數(shù)(兼容多瀏覽器)
兼容多個(gè)瀏覽器的自動(dòng)加載函數(shù)。2009-05-05最新評(píng)論