這段代碼會(huì)向上查找offsetParent,然后添加offsetTop和offsetLeft。最終無論offsetParent在 " /> 亚洲国产精品一区,中文av一区特黄,中国av在线播放

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

JavaScript CSS修改學(xué)習(xí)第一章 查找位置

offset
在所有的瀏覽器里面元素的offsetTop和offsetLeft兩個(gè)屬性都是很有用的。他們會(huì)給出你元素相對(duì)于父元素的坐標(biāo)位置。

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

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

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

如果瀏覽器支持offsetParent:

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

每次我們找到一個(gè)新的對(duì)象的時(shí)候,把他的offsetTop和offsetLeft加到curtop和curleft上:

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

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

復(fù)制代碼 代碼如下: } while (obj = obj.offsetParent);
這個(gè)不是表達(dá)式錯(cuò)誤。我不想用'=='來比較obj和obj.offsetParent(那也沒有用,因?yàn)橐粋€(gè)元素肯定和他的父元素不相等)。

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

簡單的返回
這個(gè)循環(huán)會(huì)當(dāng)元素沒有了offsetParent的時(shí)候結(jié)束。當(dāng)offsetParent存在的時(shí)候,就依然會(huì)把offsetLeft加到curleft上,把offsetTop加到curtop上。

當(dāng)循環(huán)技術(shù)的時(shí)候,我們就把坐標(biāo)返回給調(diào)用這個(gè)函數(shù)的程序。

復(fù)制代碼 代碼如下: return [curleft,curtop];}


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

轉(zhuǎn)載請(qǐng)保留以下信息
作者:北玉(tw:@rehawk)

JavaScript技術(shù)JavaScript CSS修改學(xué)習(xí)第一章 查找位置,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 齐河县| 北宁市| 邹城市| 子洲县| 灯塔市| 肇源县| 桃园县| 石嘴山市| 奉节县| 郴州市| 林口县| 吉水县| 高密市| 怀远县| 正镶白旗| 连南| 广丰县| 扶沟县| 沂南县| 东乌| 黔西| 淮北市| 洛南县| 黄大仙区| 嘉峪关市| 彭水| 沅陵县| 金山区| 克拉玛依市| 郓城县| 潼关县| 双辽市| 东明县| 固镇县| 阳城县| 大洼县| 罗田县| 武穴市| 永济市| 鄂托克旗| 庐江县|