码迷,mamicode.com
首页 > 其他好文 > 详细

offset篇

时间:2016-09-27 17:45:04      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

一.offset

定义offset() 方法返回或设置匹配元素相对于文档的偏移(位置)。

语法:

$(selector).offset(value);

返回值:

该方法返回的对象包含两个整型属性:top 和 left,以像素计。此方法只对可见元素有效。

$(selector).offset({top:100,left:0});

或者

$(selector).offset().top;

$(selector).offset().left;

设置偏移坐标:

$(selector).offset(function(index,oldoffset){
                                                             
})

参数说明:

index - 可选。接收选择器的 index 位置
oldvalue - 可选。接收选择器的当前坐标
例:

$("p").offset(function(n,c){
        newPos=new Object();
        newPos.left=c.left+100;
        newPos.top=c.top+100;
        return newPos;
    });

 

二.offsetParent

offsetParent() 方法返回最近的祖先定位元素。

总的来说两条规则:

1、如果当前元素的父级元素没有进行CSS定位(position为absolute或relative),offsetParent为body。

 

2、如果当前元素的父级元素中有CSS定位(position为absolute或relative),offsetParent取最近的那个父级元素。

 

语法:

 

$(selector).offsetParent()

 

 例子:

$("p").offsetParent().css("background-color","red");

三.offsetwidth和offsetHeight

指元素的可视宽度和高度

包括边框border,padding,滚动条宽度(高度),元素本身宽度和高度

offsetWidth=(border-width)*2+(padding-left)+(width)+(padding-right)

offsetHeight=(border-width)*2+(padding-top)+(height)+(padding-bottom)

offsetWidth与offsetHeight这两个属性的值只与该元素有关,与周围元素(父级和子级元素无关)

四.offsetTop和offsetLeft

offsetLeft与offsetTop这两个属性与offsetParent有关

以offsetLeft为例来讲返回的是对象元素边界的左上角顶点相对于offsetParent的左上角顶点的水平偏移量,从这个定义中我们可以明确地知道offsetLeft与当前元素的margin-left和offsetParent的padding-left有关。

offsetLeft=(offsetParent的padding-left)+(中间元素的offsetWidth)+(当前元素的margin-left)。

offsetTop=(offsetParent的padding-top)+(中间元素的offsetHeight)+(当前元素的margin-top)。

但通过上面的例子我们可以看到,当offsetParent为body时,对于offsetLeft与offsetTop的值有三种,分别是:IE6/7中的40(举例),IE8/9/10 和 Chrome中的70(举例),以及FireFox中的50(举例)。

通过这些数值我们可以知道,当offsetParent为body时情况比较特殊:

在IE8/9/10及Chrome中,offsetLeft = (body的margin-left)+(body的border-width)+(body的padding-left)+(当前元素的margin-left)。

 

在FireFox中,offsetLeft = (body的margin-left)+(body的padding-left)+(当前元素的margin-left)。

 

 

 

 

 

 

技术分享

 

offset篇

标签:

原文地址:http://www.cnblogs.com/itlichen/p/5913635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!