這段代碼會向上查找offsetParent,然后添加offsetTop和offsetLeft。最終無論offsetParent在 " /> 粉嫩久久久久久久极品,欧美精品一区二区三区很污很色的 ,久久99精品国产99久久6尤物

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript CSS修改學習第一章 查找位置

offset
在所有的瀏覽器里面元素的offsetTop和offsetLeft兩個屬性都是很有用的。他們會給出你元素相對于父元素的坐標位置。

這段代碼會向上查找offsetParent,然后添加offsetTop和offsetLeft。最終無論offsetParent在哪,他都會給出你元素在屏幕上的真正坐標。

解釋
這段代碼非常簡單。先傳入要計算的元素,然后設置變量curleft和curtop為0。

復制代碼 代碼如下: function findPos(obj) {
var curleft = curtop = 0;

如果瀏覽器支持offsetParent:

復制代碼 代碼如下: if (obj.offsetParent) {

每次我們找到一個新的對象的時候,把他的offsetTop和offsetLeft加到curtop和curleft上:

復制代碼 代碼如下: do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;

小技巧:返回'='的值
下面就是這個技巧:

復制代碼 代碼如下: } while (obj = obj.offsetParent);
這個不是表達式錯誤。我不想用'=='來比較obj和obj.offsetParent(那也沒有用,因為一個元素肯定和他的父元素不相等)。

所以我用'='來把obj.offsetParent的值傳遞給obj。在這里我對這個技巧有詳細的解釋。

簡單的返回
這個循環會當元素沒有了offsetParent的時候結束。當offsetParent存在的時候,就依然會把offsetLeft加到curleft上,把offsetTop加到curtop上。

當循環技術的時候,我們就把坐標返回給調用這個函數的程序。

復制代碼 代碼如下: return [curleft,curtop];}


翻譯地址:http://www.quirksmode.org/js/findpos.html

轉載請保留以下信息
作者:北玉(tw:@rehawk)

JavaScript技術JavaScript CSS修改學習第一章 查找位置,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 丹巴县| 乌拉特前旗| 安阳市| 澄城县| 舟山市| 呼伦贝尔市| 阿城市| 紫金县| 台北市| 武川县| 来安县| 同江市| 福鼎市| 沅陵县| 长岭县| 克拉玛依市| 靖江市| 巴马| 阳谷县| 托里县| 安平县| 屯门区| 伽师县| 江安县| 叶城县| 望城县| 洪雅县| 合江县| 宁都县| 孟连| 会理县| 万宁市| 广昌县| 于田县| 建阳市| 广东省| 图们市| 鄂尔多斯市| 张家界市| 类乌齐县| 阿尔山市|