基于两年开发经验,总结了 javascript、jQuery 获取窗口、文档、元素的各种值

javascript:

文档:是整个document所有的内容

浏览器当前窗口文档body的宽度: document.body.clientWidth;(仅仅是body的width)
浏览器当前窗口文档body的高度: document.body.clientHeight;(仅仅是body的height)

浏览器当前窗口文档body的宽度: document.body.offsetWidth;(width+border);
浏览器当前窗口文档body的高度: document.body.offsetHeight;(height+border);

浏览器整个文档的宽: document.body.scrollWidth;
浏览器整个文档的高: document.body.scrollHeight;

获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(其他浏览器):document.body.scrollTop;
获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(ie浏览器): document.documentElement.scrollTop;
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度)(其他浏览器): document.body.scrollLeft;
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度)(ie浏览器): document.documentElement.scrollLeft;

滚动条中内容的高度:boxx.scrollHeight;//利用这个可以使滚动条一直在底部

网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;

获取元素的宽度:clientWidth;(width+padding)
获取元素的高度:clientHeight;(height+padding)

获取元素的宽度:offsetWidth;(width+padding+border)
获取元素的高度:offsetHeight;(height+padding+border)

获取元素最左边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档顶部):offsetLeft
获取元素最上边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档左端):offsetTop

屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

jQuery:

文档:是包括滚动条所有的内容

获取浏览器显示区域(可视区域)的高度 : $(window).height();
获取浏览器显示区域(可视区域)的宽度 : $(window).width();

获取页面的文档高度:$(document).height();
获取页面的文档宽度 :$(document).width();

浏览器当前窗口文档body的高度: $(document.body).height();
浏览器当前窗口文档body的宽度: $(document.body).width();

获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度) :$(document).scrollTop();
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度):$(document).scrollLeft();

获取或设置元素的宽度:$(obj).width();(width) 注意只是元素的宽度,不包括padding
获取或设置元素的高度:$(obj).height();(height) 注意只是元素的高度,不包括padding

获取或设置元素的宽度:$(obj).innerWidth(); (width + padding)
获取或设置元素的高度:$(obj).innerHeight(); (height + padding)

获取或设置元素的宽度:$(obj).outerWidth(); (width + padding + border)
获取或设置元素的高度:$(obj).outerHeight(); (height + padding + border)

获取元素的宽度:$(obj).outerWidth(true); (width + padding + border + margin)
获取元素的高度:$(obj).outerHeight(true); (height + padding + border + margin)

某个元素的上边界距文档最上边距离:obj.offset().top;
某个元素的左边界距文档最左边距离:obj.offset().left;

鼠标移动:

screenY:
鼠标相对于显示器屏幕左上角的偏移

pageY:
鼠标相对于页面左上角的偏移 (其值会受滚动条的影响,相当于整个文档,整个页面的Y的值)
IE9之下并不支持这个属性

clientY:
鼠标相对于浏览器窗口左上角的偏移(其值不会受滚动条影响,相对于滚动条当前的位置的浏览窗口的Y值)
注意clientY和pageY的区别,pageY在页面无滚动条或滚动条下拉0的情况下值等同于clientY

event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标

layerY:
如果元素的position样式不是默认的static,我们说这个元素具有定位属性。
在当前触发鼠标事件的元素和它的祖先元素中找到最近的具有定位属性的元素,计算鼠标与其的偏移值,
以找到元素的border的左上角的外交点作为相对点。如果找不到具有定位属性的元素,那么就相对于当前页面计算偏移,此时等同于pageY。

offsetY :
offsetY和layerY的不同在于,前者的在计算偏移值时,相对于元素的border左上角的内交点,
因此当鼠标位于元素的border上时,偏移值是一个负值。
另外offsetY并不在乎触发事件的元素是否有定位属性,它总是相对于触发事件的元素来计算偏移值。

鉴于layerY和offsetY的不同,要兼容的使用二者要注意
  1.触发事件的元素一定要设置定位属性。
   2.在元素具有上边框border-top的情况下, layerY比offsetY的值多一个border-top的宽度值。

js、jQuery 获取文档、窗口、元素的各种值的更多相关文章

  1. jquery获取文档高度和窗口高度的例子

    jquery获取文档高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...

  2. Js/Jquery获取iframe中的元素

    转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...

  3. jquery获取文档高度和窗口高度汇总

    jquery获取窗口高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...

  4. js和jquery获取文档对象以及滚动条位置

    <div style="width:120px;height:120px;border:1px solid red; position:absolute; left:800px; to ...

  5. Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

    在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:window ...

  6. jQuery中获取文档的高度、可视区域高度以及滚动条距页面顶部的高度

    在写页面的时候,经常会碰到这样的情况,就是要获取文档的高度.可视区域高度或者滚动条距页面顶部的高度等情况. 但我总是有些爱搞混淆了,这里还是简单做个笔记吧,这里只限于使用jQuery来获取. 1.获取 ...

  7. 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. jQuery全屏滚动插件fullPage.js中文帮助文档API

    jQuery全屏滚动插件fullPage.js中文帮助文档API   发现了一个fullPage.js插件,于是百度了一下,还就是这个插件的作用,其实有很多网站都做了全屏滚动的特效,效果也很好看,今天 ...

  9. javaScript获取文档中所有元素节点的个数

    HTML+JS 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

随机推荐

  1. 重命名Apache日志,新日志文件会放在哪里

    重命名access.log为access.log.bak,请问新的apache日志会放在哪? 本文转自51cto的李导的博客2017-09-30-08:11:41 原创作品,允许转载,转载时请务必以超 ...

  2. go语言defer panic recover用法总结

    defer defer是go提供的一种资源处理的方式.defer的用法遵循3个原则 在defer表达式被运算的同时,defer函数的参数也会被运算.如下defer的表达式println运算的同时,其入 ...

  3. 学习java第一章

    本人是一名5年工作的人了,出来社会也比较早,工作经验比起刚刚出社会的大学生要和很多了,知道社会的现实与无奈,我为什么选择想学java昵,肯定受到了朋友的影响的,接下来就讲讲我学习java的过程. 1. ...

  4. java中的IO 的示例

    字符流 package jd_1; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNot ...

  5. Linux下的/etc/hosts文件

    在Unix系统下面有一个/etc/hosts文件,在我的Mac上,这个文件的内容如下: ## # Host Database # # localhost is used to configure th ...

  6. 去除input的自动填充色

    input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important; }

  7. 基于Multiple treatment的营销评估算法

    营销是发现或挖掘准消费者和众多商家需求,通过对自身商品和服务的优化和定制,进而推广.传播和销售产品,实现最大化利益的过程.例如,银行可通过免息卡或降价对处在分期意愿边缘的用户进行营销,促使其分期进而提 ...

  8. 浅谈element-ui中的BEM范式实践

    日常的工作中,我们无时无刻不在和样式打交道.没有样式的页面就如同一部电影,被人随意地在不同地方做了截取. BEM规范应该是对于我们现在前端组件开发中我觉得是最合适的一套范式了.所以,我在自己的日常工作 ...

  9. 用Python登录好友QQ空间点赞

    记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自 ...

  10. c语音-第零次作业

    1.你认为大学的学习生活.同学关系.师生应该是怎样? 我认为大学学习应该以自我学习为主,由以往的被动学习改为主动学习,探索新世界,除学习专业知识外对自身欠缺的地方也应该加以补足:同学之间要互相帮助,更 ...