在JavaScript DOM编程中,会接触很多很多很多关于浏览器的宽高,屏幕的宽高,元素的各种宽高,以及鼠标的坐标等,常常让人搞混。索性就写篇博客整理一下。

  

case 1:鼠标的坐标

  获取鼠标的坐标,首先要鼠标触发某个事件,该event事件的clientX和clientY属性就是鼠标的x,y坐标,注意此处鼠标是相对于浏览器显示区域的左上角为(0,0)来计算的。

  示例:

document.documentElement.onclick = function(e){
console.log("鼠标在浏览器中的坐标为:(" + e.clientX + "px," + e.clientY +"px)")
}

  

case 2:显示屏的宽高

  获取显示屏的宽高(此时与显示屏的内容无关,只是物理属性),可以使用screen对象,

属性 说明
availHeight 返回屏幕的高度(不包含标签栏,tab页)
availWidth 返回屏幕的宽度(不包含标签栏,tab页)
height 返回屏幕的总高度
width 返回屏幕的总宽度

case 3:浏览器窗口的宽高

  浏览器窗口设计window对象。

  window.innerheight 返回窗口的文档显示区的高度,可用高

  window.innerwidth 返回窗口的文档显示区的宽度,可用宽

  使用 outerWidth 和 outerHeight 属性获取加上工具条与滚动条窗口的宽度与高度。

case 4:border,padding,margin,width的宽度以及元素节点的宽高

  对于一个div,有以下样式:

div{margin:10px; padding:10px; border:10px solid black; font-size:5px; width:20px; height:30px; }

  

  所以在使用javascript设置element.style['attr']时,设置哪一个属性,可以从上面这个图片中描述来看。

case 5:获取整个元素的宽高(包含padding,border,以及width)

  整个元素的宽高,肯定不能把margin算在内了,所以

  整个元素的宽就是:style[border-left + padding-left + width + padding-right + border-right]  = element.offsetWidth

  整个元素的高就是 style[border-left + padding-left + width + padding-right + border-right]  = element.offsetHeight

case 6:元素节点在浏览器中的位置

  对于每个元素,都有offsetLeft,offsetTop属性,

  element.offsetLeft返回当前元素的相对水平偏移,

  element.offsetTop返回当前元素的相对垂直偏移

case 7:指定position时,上下左右的值

  设置定位属性时,分别可以使用left、right、top、bottom来设置

  这四个值,是相对于定位元素而言的,并不一定是浏览器的坐上角。

case 8:页面滑动的宽高

  页面滑动,就必然涉及scroll,也就是说,内容的宽度或者高度超过了浏览器的宽高,那么就会出现滚动条,当

case 9:浏览器在显示器的位置

JavaScript中的各种X,Y,Width,Height的更多相关文章

  1. javascript中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX

    原文:https://www.cnblogs.com/ifworld/p/7605954.html 元素宽高 offsetWidth //返回元素的宽度(包括元素宽度.内边距和边框,不包括外边距) o ...

  2. javascript 获取文档/屏幕的Width||Height

    document.body.clientWidth //网页可见区域宽度document.body.clientHeight //网页可见区域高度document.body.offsetWidth / ...

  3. 彻底理解javascript 中的事件对象的pageY, clientY, screenY的区别和联系。

    说到底, pageY, clientY, screenY的计算,就是要找到参考点, 它们的值就是: 鼠标点击的点----------- 和参考点指点----------的直角坐标系的距离 stacko ...

  4. UIView的frame的扩展分类,轻松取出x、y、height、width等值

    一.引言: 在ios开发中,就界面搭建.控件布局时,都会很恶心的通过很长的代码才能取出控件的x.y.height.width等值,大大降低了开发效率.那为了省略这些恶心的步骤,小编在这里给UIView ...

  5. 如何理解VB窗体中的scale类属性及width height属性之间的关系

    如何理解VB窗体中的scale类属性及width height属性之间的关系 VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关系是许多VB初学者难以理解 ...

  6. error: OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat

    问题原因: You are probably working outside of the image dimensions. Does any of the values you pass to t ...

  7. javascript中的一些核心知识点以及需要注意的地方

    前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...

  8. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  9. Javascript中String对象的的简单学习

    第十一课String对象介绍1:属性    在javascript中可以用单引号,或者双引号括起来的一个字符当作    一个字符对象的实例,所以可以在某个字符串后再加上.去调用String    对象 ...

  10. Javascript中最常用的55个经典技巧

    Javascript中最常用的55个经典技巧1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table ...

随机推荐

  1. php配置文件php.ini的详细解析(续)

    file_uploads = On                                                                                 // ...

  2. js获取请求地址后面带的参数

    浏览器输入页面地址的时候在后面带有请求参数, 页面加载后需要获取携带的参数, 可以使用js, 在页面加载js的时候获取参数 http://localhost:8080/demo/index.html? ...

  3. 前端导出excel表

    前端导出excel表 方式一: 前端js实现 : https://www.cnblogs.com/zhangym118/p/6235801.html 方式二: java后端实现: https://bl ...

  4. 【转】用ffmpeg转多音轨的mkv文件

    命令: ffmpeg -i AmericanCaptain.mkv -map 0:v -vcodec copy -map 0:a:1 -acodec copyAmericanCaptain.mp4 - ...

  5. centos 6.9修改系统默认字符集

    [root@ckh ~]# locale –a #列出系统所支持的所有字符集 aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER aa_ER@saaho aa_ER.utf8 ...

  6. spring boot启动报错

    Exception encountered during context initialization - cancelling refresh attempt: org.springframewor ...

  7. PHP 3 运算符 if...else...elseif 语句

    <?php $x=10; $y=6; echo ($x + $y); // 输出 16 echo ($x - $y); // 输出 4 echo ($x * $y); // 输出 60 echo ...

  8. Spring Security(十八):5.9 Post Processing Configured Objects

    Spring Security’s Java Configuration does not expose every property of every object that it configur ...

  9. 获得数值型数组的所有元素之和(分别使用增强for循环和普通for循环)

    package com.Summer_0419.cn; /** * @author Summer * 获得数值型数组的所有元素之和 */public class Test_Method13 { pub ...

  10. python:unittest之跳过测试和预期失败的用例

    在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能. 前面的博客介绍了unittest框架的测试用例加 ...