基于两年开发经验,总结了 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. 通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找的方法

    在Excel中,通过VLOOKUP函数可以查找到数据并返回数据.不仅能跨表查找,同时,更能跨工作薄查找. 但是,VLOOKUP函数一般情况下,只能实现单条件查找. 如果想通过VLOOKUP函数来实现双 ...

  2. Numpy库的下载及安装(吐血总结)

    Python很火,我也下了个来耍耍一阵子.可是渐渐地,我已经不满足于它的基本库了,我把目光转到了Numpy~~~~~ 然而想法总是比现实容易,因为我之前下的是Python3.3.x,所有没有自带pip ...

  3. Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core

    问题 <Spring 实战>第5章,在 IDEA 中 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre ...

  4. 常用css样式颜色值: 64位真彩和256位值

    1. background-color: #eee; 2. background-color: #797979; 3. background-color: #007aff; 继续更新中

  5. protobuf的下载、编译和使用

    一 背景 工作中临时需要使用 protobuf v3.0.2 做消息格式转换,折腾了很久才搞定,这里特意做一个记录. 二 准备工作 全程使用的电脑为公司的win7 64位旗舰版,已经预先安装VS201 ...

  6. sentinel监控redis高可用集群(一)

    一.首先配置redis的主从同步集群. 1.主库的配置文件不用修改,从库的配置文件只需增加一行,说明主库的IP端口.如果需要验证的,也要加多一行,认证密码. slaveof 192.168.20.26 ...

  7. 【Python】 发邮件用 smtplib & email

    smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...

  8. 【Python】 linux中python命令的命令行参数

    Python命令行参数 原文地址:http://blog.163.com/weak_time/blog/static/25852809120169333247925/ Python的命令行参数,提供了 ...

  9. Django--基本篇:项目结构与设计模式(MVC)

    Django在项目开发中有着结构清晰.层次明显.容易编写理解查阅demo的优点,那么我们来个小案例具体看看.    一.项目结构简析: 我们按照上一篇中的开发流程步骤创建一个新项目myblog,项目下 ...

  10. Hibernate之深入Hibernate的配置文件

    1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFacto ...