jquery position方法使用及兼容性
1、position方法
jquery api地址:http://jquery.cuishifeng.cn/position.html
position方法获取匹配元素相对父元素的偏移。
2、说明
2.1 与offset()区别
.offset()是获得该元素相对于documet的当前坐标
.position()方法可以取得元素相对于父元素的偏移位置,父元素为该元素最近的而且被定位过的祖先元素。
2.2 值计算
.元素本身所占用的边框,边距和填充的大小不计。
.父元素的边框和边距不计,父元素的填充计算在内。
3、示例代码
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>jQuery position()示例</title>
<style>
html {
line-height: 1.15;
}
/*父元素--相对定位*/ .parent {
position: relative;
width: 200px;
height: 400px;
/*父元素的margin不计算在内*/
margin-top: 10px;
/*父元素的border不计算在内*/
border: 1px solid green;
/*父元素的padding计算在内*/
padding-top: 10px;
} .child-1 {
width: 100px;
height: 100px;
margin: 0 auto;
border: 1px solid #2E8DED;
} .child-2 {
width: 100px;
height: 100px;
/*子元素的margin不计算在内*/
margin: 10px auto 0;
/*子元素的border不计算在内*/
border: 1px solid #2E8DED;
/*子元素的padding不计算在内*/
padding: 10px;
}
</style>
</head> <body> <div class="parent">
<p class="child-1">
first child
</p>
<p class="child-2" id="no-2">
second child
</p>
</div>
<script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function() {
//获取child-2子元素距离父元素的距离
console.log($('#no-2').position().top);
});
</script>
</body> </html>
4、注意
对于文字的line-height等属性,浏览器(chrome、IE、Firefox)默认大小不一致,因此不同的浏览器position()在计算尺寸时会存在不一致,因此必须保证所有浏览器一致的line-height等属性。
示例代码为没有设置line-height的例子,position()在不同的浏览器上计算出的值不一样。
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>jQuery position()示例</title>
<style>
html {
/*必须给予一致的设置,否则position()计算值不同*/
/*line-height: 1.15;*/
}
/*父元素--相对定位*/ .parent {
position: relative;
width: 200px;
height: 400px;
/*父元素的margin不计算在内*/
margin-top: 10px;
/*父元素的border不计算在内*/
border: 1px solid green;
/*父元素的padding计算在内*/
padding-top: 10px;
} .child-1 {
width: 100px;
height: 100px;
margin: 0 auto;
border: 1px solid #2E8DED;
} .child-2 {
width: 100px;
height: 100px;
/*子元素的margin不计算在内*/
margin: 10px auto 0;
/*子元素的border不计算在内*/
border: 1px solid #2E8DED;
/*子元素的padding不计算在内*/
padding: 10px;
}
</style>
</head> <body> <div class="parent">
文字文字
<p class="child-1">
first child
</p>
<p class="child-2" id="no-2">
second child
</p>
</div>
<script src=".output/js/jquery-1.12.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function() {
//获取child-2子元素距离父元素的距离
console.log($('#no-2').position().top);
});
</script>
</body> </html>
jquery position方法使用及兼容性的更多相关文章
- jquery offset() 与position()方法的区别
jquery 中有两个获取元素位置的方法offset()和position(),这两个方法之间有什么异同?使用的时候应该注意哪些问题?什么时候使用offset(),什么时候又使用position()呢 ...
- jQuery Ajax 方法调用 Asp.Net WebService 以及调用aspx.cs中方法的详细例子
一.jQuery Ajax 方法调用 Asp.Net WebService (引自Terry Feng) Html文件 <!DOCTYPE html PUBLIC "-//W3C//D ...
- Jquery 扩展方法实现原理
JSONP原理 首先:JSON和JSONP是不一样的概念. JSON是一种数据交换格式,而JSONP是非正式传输协议. 该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回 ...
- jquery on方法(事件委托)
jquery绑定事件处理函数的方法有好几个,比如:bind(),on(),delegate(),live(). 其中delegate和live都是用on实现的,效果也类似,live好像在1.7版本中已 ...
- html 5 data-* (dataset) 属性和 jquery data方法比较
一些文章在介绍html 5 data-* (dataset)属性时,会提到jquery的data方法,认为data方法能够很好的利用html 5的这个特性.但实际上,二者的兼容性是很差的.下面给出一段 ...
- 微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo
微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo 前言 做好了项目之后,在各种浏览器里面測试,都没有问题.非常高兴,交付后端使用.然而发如今微信自带浏览器里面,却是出现 ...
- jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法
jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jq ...
- jquery clearQueue方法 语法
jquery clearQueue方法 语法 作用:clearQueue() 方法停止队列中所有仍未执行的函数.与 stop() 方法不同,(只适用于动画),clearQueue() 能够清除任何排队 ...
- jQuery Ajax方法调用 Asp.Net WebService、WebMethod 的详细实例代码
将以下html存为ws.aspx <%@ Page Language="C#" AutoEventWireup="true" %> <scri ...
随机推荐
- MySQL运维开发相关的所有工具
http://www.ruzuojun.com/topic/592.html Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...
- OllyDbg 使用笔记 (十二)
OllyDbg 使用笔记 (十二) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 演示样例程序下载地址:http://pan.baidu.com/s/1eQiV6aI 安装好程序 ...
- MVC实现多选下拉框,保存并显示多选项
在"MVC实现多选下拉框"中,主要是多选下拉框的显示,而实际情况通常是:选择多个选项提交后,需要在编辑页把所有选中的项显示出来. 模拟这样的一个场景:一个车迷可能有多个自己喜欢的汽 ...
- Spring安全权限管理(Spring Security)
1.spring Security简要介绍 Spring Security以前叫做acegi,是后来才成为Spring的一个子项目,也是目前最为流行的一个安全权限管理框架,它与Spring紧密结合在一 ...
- andriod 播放mp4
权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> activi ...
- Selenium2+python自动化49-判断文本(text_to_be_present_in_element)
前言 在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名. 在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来 ...
- 每天进步一点点——论fork()函数与Linux中的多线程编程
转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803 一.fork()函数 在操作系统的基本概念中进程是程序的一次运行,且是 ...
- @Java虚拟机之对象访问
建立对象是为了使用对象,我们的java程序需要通过栈上的reference数据来操作堆上的具体对象. 对象访问会涉及到Java栈.Java堆.方法区这三个内存区域. 如下面这句代码: Object o ...
- go语言基础之结构体做函数参数 值传递和地址传递
1.结构体做函数参数值传递 示例: package main //必须有个main包 import "fmt" //定义一个结构体类型 type Student struct { ...
- require.js 最佳实践
require.js是一个js库,相关的基础知识,前面转载了两篇博文:Javascript模块化编程(require.js), Javascript模块化工具require.js教程,RequireJ ...