最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
jquery中offset()方法使用示例
时间:2015-04-16 编辑:简简单单 来源:一聚教程网
jQuery 1.2 新增该函数。
jQueryObject.offset( [ coordinates ] )
注意:
1、如果省略了coordinates参数,则表示获取偏移位置;如果指定了该参数,则表示设置偏移位置。2、offset()函数的"设置"操作针对的是当前jQuery对象所匹配的每一个元素;"读取"操作只针对第一个匹配的元素。
1、获得元素相对于document的位置
获得位置是元素相对于document的位置信息,通常可以说是这个元素的坐标值。
// 元素相对于document的左位移
$("#some-id").offset().left
// 元素相对于document的上位移
$("#some-id").offset().top
2、设置元素相对于document的位置
在设置元素offset的时候,需要该元素为已定位样式,即:relative、absolute、fixed等除了static的position属性值。其实这里,我一直不明白,为什么会有static这个position属性值,而不直接是relative呢?此问暂且按下,继续说jquery的offset()使用方法。
// 设置元素相对于document的位移,该元素的position必须为非static值
$("#some-id").offset({left:123,top:99});
注意:
需要注意的是,offset的设置值,必须成对出现,否则会报错的哦!
offset不仅可以设置单个元素,也可以设置多个元素不同的坐标值,而不需要jQuery.each操作了,如:
$(".some-class").offset(function(index,coords)
{
// index为元素索引
// coords为元素的坐标:top、left
// 函数必须返回坐标值
return {top:ccoordsoord.top+index,left:coords.left+index};
});
2.浮动div在滚动条滚动时保持在原位
按图1,
var firstTop = $("浮动DIV").offset().top;
var top = firstTop + $(document).scrollTop();
$(浮动DIV).offset({ top: top });
按图2,
var top = $(浮动DIV).offset().top;
$("浮动DIV").offset({ top: top });