今天,想測試一個div與頂部的距離,用的是.offsetTop,但是offsetTop獲得的值,怎么都打印不出來。折騰了半天,打印的結果都是undefined,雖然網上很多資料都說返回的是數值。雖然這個函數永不了,但是黃顯欽找到了一個可以替代offsetTop的函數。那就是jquery的offset().top
我們先來了解一下,什么是offset().top和offsetTop?
offsetTop
解析一:
假設 obj 為某個 HTML 控件。
obj.offsetTop 指 obj 相對於版面或由 offsetParent 屬性指定的父坐標的計算上側位置,整型,單位像素。
解析二:
當前對象到其上級層頂部的距離.
不能對其進行賦值.設置對象到頁面頂部的距離請用style.top屬性.
這是從網上找到的兩種解析,您看着用,我也沒搞懂,主要是打印不出offsetTop來。
如果需要獲取當前元素到document的高度,建議使用jquery的offset().top。下面我們解析一下offset().top。
offset().top
offset()的top是指元素與document的上邊的距離,而不是瀏覽器當前窗體的上邊緣,如圖1。
圖1:document高度超過window,瀏覽器出現滾動條,滾動滾動條,提交按鈕的offset不變。
圖2:document中的div有滾動條,提交按鈕的offset隨div的滾動變化而變化,與document無關
從上面這兩個圖,我們就知道jquery的offset.top的用法區別了。