jQuery.position()其实不可靠!
調(diào)用jQuery.position()方法會返回相對于父元素的位置,jQuery官方文檔中描述說,它跟.offset()方法不一樣,.offset()返回的是相對于document的位置,而.position()返回的是相對于父元素的位置。
但事實(shí)上,在使用的過程中,我們發(fā)現(xiàn).position()返回的值經(jīng)常是0。但事實(shí)不是0。尤其是谷歌瀏覽器和IE瀏覽器里?;鸷鼮g覽器沒有此問題。
究其原因,以基于Webkit的瀏覽器(谷歌瀏覽器和Safari瀏覽器)為例,只有當(dāng)元素(圖片、flash等)完全加載后,瀏覽器才能訪問到這些元素的高度和寬度,而火狐瀏覽器是在DOM加載完成后就能訪問這些屬性,它不需要知道這個(gè)元素的完整尺寸。而谷歌瀏覽器就不行。因此在谷歌/IE這樣的瀏覽器里,如果你想使用.position()獲取元素的偏移量,往往得到值就是初始值:0。
有一種補(bǔ)救的方法是將你的.position()調(diào)用放到 $(window).load()事件觸發(fā)之后,而不是$(document).ready事件之后。但這種方法也未必可靠。
另外一種變通的方法是用.offset()來換算:
這雖然產(chǎn)生了多余的代碼,但比較可靠的多,用的讓人放心。
原文出處:http://www.webhek.com/jquery-position/
總結(jié)
以上是生活随笔為你收集整理的jQuery.position()其实不可靠!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第十三节:易学又实用的新特性:for..
- 下一篇: 2020年终总结暨组会PPT202012