Jquery中用offset().top和offsetTop的比较

今天,想测试一个div与顶部的距离,用的是.offsetTop,但是offsetTop获得的值,怎么都打印不出来。折腾了半天,打印的结果都是undefined,虽然网上很多资料都说返回的是数值。虽然这个函数永不了,但是黄显钦找到了一个可以替代offsetTop的函数。那就是jquery的offset().top

我们先来了解一下,什么是offset().top和offsetTop?

offsetTop

解析一:

假设 obj 为某个 HTML 控件。

obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。

解析二:

当前对象到其上级层顶部的距离.

不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

这是从网上找到的两种解析,您看着用,我也没搞懂,主要是打印不出offsetTop来。

如果需要获取当前元素到document的高度,建议使用jquery的offset().top。下面我们解析一下offset().top。

 offset().top

offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图1。

图1:document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的offset不变。

图2:document中的div有滚动条,提交按钮的offset随div的滚动变化而变化,与document无关

从上面这两个图,我们就知道jquery的offset.top的用法区别了。

时间: 2024-10-17 15:28:27

Jquery中用offset().top和offsetTop的比较的相关文章

js实现jquery的offset()

用过jQuery的offset()的同学都知道 offset().top或offset().left很方便地取得元素相对于整个页面的偏移. 而在js里,没有这样直接的方法,节点的属性offsetTop可以获得该节点相对于父节点的相对偏移 但不能直接获得其绝对偏移,我们可用节点逐层递归向上来相加offsetTop来获得绝对偏移. function getOffset(Node, offset) { if (!offset) { offset = {}; offset.top = 0; offset

js中的offsetParent,offsetLeft,offsetTop及jquery的offset(),position()比较

1.offsetParent 元素的offsetParent并不是元素的父元素,判断元素的offsetParent要根据以下情况: 1)当DOM结构层次中的元素均没有进行css定位(设置position为absolute或relative),则offsetParent为根目录: 2)当元素的父元素没有进行css定位,则offsetParent取最近的已经定位的元素: 3)当元素的父元素进行了css定位,则offsetParent为父元素: 2.offsetLeft,offsetTop 在IE中:

jQuery中animate与scrollTop、offset().top实例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

jQuery的offset()和position()用法详解

offset()和position()用法详解: 这两个方法非常的常用,同时掌握起来有些困难,下面就介绍一下这两个方法的用法. 下面先看一下它们基本的定义: 1.offset()方法的定义: 此方法获取或者设置匹配元素在当前document的相对偏移. 此方法只对可见元素有效. 当获取偏移量时,方法的返回值是一个包含两个整型属性(top和left)的对象. 设置偏移量时,此方法的参数是带有top和left属性的对象. 具体用法可以参阅jQuery的offset()方法一章节. 2.positio

jQuery的offset()方法

offset()方法的定义和用法: 此方法返回或设置所匹配元素相对于document对象的偏移量. 语法结构一: $(selector).offset() 获取匹配元素在当前document的相对偏移.返回的对象包含两个整型属:top和left.此方法只对可见元素有效.实例代码: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author

js的各个offset!offsetHeight,offsetTop

相信大家刚接触js的时候,总是被offsetHeight,offsetTop,clientHeight,clientTop等等一系列的offset问题搞的头晕.刚刚看高程,也看到了这方面的知识.记录一下,增加理解. 一.首先说偏移量:offsetHeight,offsetTop. 看图说话,方便理解. 这是我画的一个简单的偏移量图.黄色区域是我们的元素,她包括边框,内边距.我们要知道宽.高是对应的.上下左右是对应的.所以最起码不要把offsetLeft和offsetWidth混淆在一起.widt

深度理解Jquery 中 offset() 方法

多说无益,现在就开始! 一.语法 1. 返回偏移坐标 $(selector).offset(); top: $(selector).offset().top; left: $(selector).offset().left; 2.设置偏移坐标: $(selector).offset({top:value,left:value}); 参数的含义:{top:value,left:value}     当设置偏移时是必需的.规定以像素为单位的 top 和 left 坐标. 可能的值:(1).名/值对,

关于offset().top与scrollTop()

1.offset().top匹配元素相对于文档的偏移位置() <body> <style type="text/css"> body { border:20px solid #CCC; margin:10px; padding:40px; background:#EEE; } #test { width:400px; height:200px; padding:40px; background:#F60; border:5px solid #888; } <

jquery back to top 页面底部的返回顶部按钮

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Back to top</title> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.js"