溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用JavaScript和JQUERY怎么獲取元素的寬、高和位置

發(fā)布時間:2021-02-22 16:08:45 來源:億速云 閱讀:162 作者:Leah 欄目:web開發(fā)

使用JavaScript和JQUERY怎么獲取元素的寬、高和位置?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

JavaScript可以做什么

1.可以使網(wǎng)頁具有交互性,例如響應(yīng)用戶點(diǎn)擊,給用戶提供更好的體驗(yàn)。 2.可以處理表單,檢驗(yàn)用戶的輸入,并提供及時反饋節(jié)省用戶時間。 3.可以根據(jù)用戶的操作,動態(tài)的創(chuàng)建頁面。 4使用JavaScript可以通過設(shè)置cookie存儲在瀏覽器上的一些臨時信息。

javascript中

ele.getBoundingClientRect():獲取一個元素相對于瀏覽器視口的的坐標(biāo)(無論父元素定位與否),返回一個Object對象,該對象有6個屬性:top/left/right/bottom/width/height。幾乎所有瀏覽器都支持該方法。jQuery中沒有直接的方法,需要用$(ele).offset().top-$(document).scrollTop()計(jì)算得到。

注意:right是指元素右邊界距窗口最左邊的距離,bottom是指元素下邊界距窗口最上面的距離。

pageYOffset 屬性是scrollY屬性的別名,設(shè)置或返回文檔在垂直方向滾動的像素值。window.pageYOffset == window.scrollY;前者瀏覽器兼容性更好。

所以獲取元素在頁面文檔中的位置:

var X= ele.getBoundingClientRect().left+scrollTop;

var Y =ele.getBoundingClientRect().top+scrollTop;
//在窗口的位置+文檔滾動掉的尺寸

為了跨瀏覽器兼容,文檔卷掉的長度請使用如下方式:

varscrollTop= document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

jQuery中

1.鼠標(biāo)相對于頁面的位置

event.pageX/event.pageY:鼠標(biāo)相對于頁面左/上邊緣的距離。

2.元素的位置偏移量

offset():返回包含top和left兩個屬性的對象,相對于document文檔的坐標(biāo)。

position():返回包含top和left兩個屬性的對象,相對于最近的已定位的包含元素的位置。若無,則相對于document。只對可見元素有效,注意ele{visibility:hidden}也屬于可見元素。

3.元素的寬高

width()/height():獲得或設(shè)置元素【內(nèi)容】的寬/高;若元素的display:none,其值為0。

innerWidth()/innerHeight():獲得包括內(nèi)邊距(padding)的元素寬度/高度,不包括邊框;

outerWidth()/outerHeight():獲得包括內(nèi)邊距(padding)和邊框(border)的元素寬度/高度;

outerWidth(true)/outerHeight(true):獲得整個元素的寬度/高度,包括外邊距、邊框、內(nèi)邊距和內(nèi)容;

使用JavaScript和JQUERY怎么獲取元素的寬、高和位置

注意:

1)ele.css("height"):返回帶有完整單位的字符串(例如400px),若運(yùn)算需要parseInt轉(zhuǎn)換。ele.height():返回一個沒有單位的number數(shù)值(例如400)。

2)height()總是返回內(nèi)容寬度,不管CSS box-sizing屬性值。若CSS box-sizing為border-box,將造成這個函數(shù)改變這個容器的outerHeight,而不僅是原來的內(nèi)容高度。

4.瀏覽器相關(guān)寬高

$(window).height():獲取瀏覽器可視窗口的高度;

$(document).height():獲取整個網(wǎng)頁文檔的高度;當(dāng)網(wǎng)頁高度不足瀏覽器窗口時,返回的是$(window).height()。

$(document).scrollTop():document元素相對document元素對應(yīng)的滾動條頂部的垂直偏移量,可獲取已滾動的距離或設(shè)置將要滾動的距離。

即:當(dāng)網(wǎng)頁滾動條拉到最低端時,$(document).height() == $(window).height() + $(window).scrollTop()。

注意:不建議使用$("html").height()、$("body").height()這樣的方法獲取高度,原因有:

$("body").height():body可能會有邊框,獲取的高度會比$(document).height()?。?/p>

$("html").height():在不同的瀏覽器上獲取的高度會有差異,瀏覽器不兼容。

$(window).height()若返回的不是瀏覽器窗口的高度,可能是網(wǎng)頁沒有加上<!DOCTYPE>聲明。

關(guān)于使用JavaScript和JQUERY怎么獲取元素的寬、高和位置問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI