国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Jquery中的offset()和position()深入剖析

2024-05-06 14:15:12
字體:
供稿:網(wǎng)友

先看看這兩個方法的定義。
offset():
獲取匹配元素在當前視口的相對偏移。
返回的對象包含兩個整形屬性:top 和 left。此方法只對可見元素有效。
position():
獲取匹配元素相對父元素的偏移。
返回的對象包含兩個整形屬性:top 和 left。為精確計算結(jié)果,請在補白、邊框和填充屬性上使用像素單位。此方法只對可見元素有效。
真的就這么簡單嗎?實踐出真知。
先來看看在jquery框架源碼里面,是怎么獲得position()的:
代碼如下:
// Get *real* offsetParent
var offsetParent = this.offsetParent(),
// Get correct offsets
offset = this.offset(),
parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
// Subtract element margins
// note: when an element has margin: auto the offsetLeft and marginLeft
// are the same in Safari causing offset.left to incorrectly be 0
offset.top -= num( this, 'marginTop' );
offset.left -= num( this, 'marginLeft' );
// Add offsetParent borders
parentOffset.top += num( offsetParent, 'borderTopWidth' );
parentOffset.left += num( offsetParent, 'borderLeftWidth' );
// Subtract the two offsets
results = {
top: offset.top - parentOffset.top,
left: offset.left - parentOffset.left
};

點擊下面的頁面可以測試一下兩個的區(qū)別:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
通過test1頁面測試的結(jié)果可以得出這個結(jié)論:
使用position()方法時事實上是把該元素當絕對定位來處理,獲取的是該元素相當于最近的一個擁有絕對或者相對定位的父元素的偏移位置。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 勃利县| 潜山县| 县级市| 印江| 黑龙江省| 抚顺市| 闵行区| 九江县| 鄂伦春自治旗| 澄迈县| 故城县| 泗阳县| 新蔡县| 五原县| 安平县| 吉首市| 长沙县| 威海市| 吉隆县| 成武县| 温宿县| 闸北区| 江门市| 甘孜| 庆元县| 思茅市| 手机| 新巴尔虎右旗| 阜康市| 两当县| 庐江县| 牡丹江市| 盐城市| 白城市| 和林格尔县| 乡城县| 曲阳县| 乾安县| 黄梅县| 宾川县| 阿克陶县|