jQuery中的offset().top用于獲取某個(gè)元素相對(duì)于文檔頂部的距離。但是,在一些特定的情況下,offset().top的返回值可能會(huì)不準(zhǔn)確。
//獲取元素距離文檔頂部的距離 var topPosition = $("#myElement").offset().top; //打印距離文檔頂部的距離 console.log(topPosition);
一種可能導(dǎo)致offset().top不準(zhǔn)的情況是,元素被隱藏了。如果一個(gè)元素是隱藏的,它的offset().top的返回值將是0。
另一種可能的情況是,頁面滾動(dòng)了。在這種情況下,元素的offset().top將取決于在哪一個(gè)容器中滾動(dòng)。
如果需要獲取元素的真實(shí)距離,可以使用position().top來代替。position().top獲取的是元素相對(duì)于它最近的已定位父元素的距離。
//獲取元素距離最近的定位父元素的距離 var positionTop = $("#myElement").position().top; //打印距離最近的定位父元素的距離 console.log(positionTop);
總之,在使用offset().top時(shí),需要保證元素是可見的,并且要考慮到頁面的滾動(dòng)。