Javascript、Jquery获取浏览器和屏幕各种高度宽度

zhangycun 2021-12-09 原文

 

Javascript:

document.body 返回时<body></body>

document.documentElement返回的是 <html></html>

两者使用一般用于获取scrollTop,

document.body.scrollTop 的值一看,一直都是 0。一翻折腾,原来是 DTD 的问题,要是页面直接用 <html> 开头的话就没有问题了。但是要符合 web 标准,DTD 当然是不能少的。

如果有 DTD 时用,那就用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了

一般情况下:兼容性写法如下:

 var w = document.documentElement.scrollTop || document.body.scrollTop

document.body.clientWidth ==> BODY可视宽度(不包含border,水平滚动条,margin)
document.body.clientHeight ==> BODY可视高度(不包含border,水平滚动条,margin)
document.documentElement.clientWidth ==> html可视宽度(不包含border,水平滚动条,margin)
document.documentElement.clientHeight ==> html可视高度(不包含border,水平滚动条,margin)

如果页面指定了 DOCTYPE,就是用document.documentElement.来获取,如果不指定 DOCTYPE,就用document.body 获取

document.body.clientWidth      //网页可见区域宽(body)

document.body.clientHeight       //网页可见区域高(body)

document.body.offsetWidth       //网页可见区域宽(body),包括border、margin等

alert(document.body.offsetHeight);      //网页可见区域宽(body),包括border、margin等

document.body.scrollWidth       //网页正文全文宽,可见宽度+隐藏宽度,页面会滚动,该属性才具有意义,如果不滚动,那么document.body.scrollWidth = document.body.clientHeight

document.body.scrollHeight      //网页正文全文高,可见高度+隐藏高度

document.body.scrollTop | document.documentElement.scrollTop         //网页被卷去的Top(滚动条)

document.body.scrollLef |  document.documentElement.scrollLef          //网页被卷去的Left(滚动条)

document.getElementById(“box”).offsetTop  // 该元素相对最近父级元素顶部的距离

window.screenTop                  //浏览器距离屏幕顶部的距离Top

window.screenLeft                    //浏览器距离屏幕左侧的距离Left

window.screen.height               //屏幕分辨率的高

window.screen.width                //屏幕分辨率的宽

window.screen.availHeight          //屏幕可用工作区的高

window.screen.availWidth          //屏幕可用工作区的宽

 

Jquery

alert($(window).height());                           //浏览器当前窗口可视区域高度

alert($(document).height());                        //浏览器当前窗口文档的高度

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

alert($(document.body).outerHeight(true));  //浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width());                            //浏览器当前窗口可视区域宽度

alert($(document).width());                        //浏览器当前窗口文档对象宽度

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

alert($(document.body).outerWidth(true));  //浏览器当前窗口文档body的总宽度 包括border padding margin

 

 

jquery获取html元素的绝对位置坐标和相对父元素的位置坐标方法:
绝对位置坐标:
$(“#elem”).offset().top
$(“#elem”).offset().left
相对父元素的位置坐标:
$(“#elem”).position().top
$(“#elem”).position().left

另:
static(默认):默认定位方式。
relative(相对定位):在static的基础上,相对元素本来的位置变化,通过设定top,bottom,left,right实现。
absolute(绝对定位):是相对父元素来说的,如果父元素中有relative,那么该元素的位置是经过计算后的结果。即absolute定位的参照物是“上一个定位过的父元素(static不算)”。绝对定位会使元素从文档流中被删除
fixed(固定定位):fixed定位的参照物总是当前的文档。利用fixed定位,很容易让一个div定位在浏览器文档的左上,右上等方位。

版权声明:本文为zhangycun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangycun/p/7345905.html

Javascript、Jquery获取浏览器和屏幕各种高度宽度的更多相关文章

  1. 浅谈ES6

    ECMAScript6.0(简称ES6)是javaScript语言的下一代标准,已经在2015年6月正式发布了 […]...

  2. webpack4.0各个击破(4)—— Javascript & splitChunk

    目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用b […]...

  3. 好用的 Html、CSS、JavaScript 开源项目

    1.极简模块化前端UI框架 Layui  评分:9.3;收藏量:873  授权协议:MIT 开发语言:Java […]...

  4. JavaScript 中那些关于坐标和距离的属性与方法

    一 前言 在前端开发中总会遇到各种各样需要使用或计算坐标和距离的情况,但是这些属性和方法众多,全部熟练地记下来 […]...

  5. JavaScript中的数据类型

    在ECMAScript中,变量是松散类型的。所谓松散类型就是指变量可以用来保存任何类型的数据。  // 下面的 […]...

  6. 细说Ajax跨域

    一、什么是跨域   跨域问题来自于浏览器同源策略的限制,包括DOM同源限制和Ajax同源限制,本文探讨的是Aj […]...

  7. javaScript今日总结

    javascript简单介绍ECMAScript 1.语法 2.变量:只能使用var定义,如果在函数的内容使用 […]...

  8. JavaScript笔记

    变量作用域:1、全局变量:在全局作用域下声明的变量​在函数内部没有声明直接赋值的变量也是属于全局变量全局变量:只有浏览器关闭的时候才会销毁,比较占内存资源局部变量 :当我们程序执行完毕就会销毁,比较节约内存资源作用域...

随机推荐

  1. Java1.0-1.11各个版本的新特性

    JDK Version 1.0 1996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释 […]...

  2. Java Udp通信

    1. UDP通信原理UDP协议的特点1. UDP是一种无连接、不可靠传输协议2. 将数据源IP、目的地IP和端口以及数据封装成数据包,大小限制在64KB之内,直接发送出去即可3. 和tcp同属于传输层的一种传输协议,常用于消息接发等需要...

  3. 在.NetCore中使用Myrmec检测文件真实格式

    Myrmec 是什么? Myrmec 是一个用于检测文件格式的库,Myrmec不同于其它库或者手写检测代码,M […]...

  4. JavaSE习题 第八章 线程

    问答题 1.线程和进程是什么关系?   进程是程序的一次动态执行,对应了从代码加载,执行至执行完毕的一个完整的 […]...

  5. APP性能测试指标和测试方法

    流量 常用方法 方法一:Android系统自带统计功能(总体流量数值) Proc/uid_stat/{UID} […]...

  6. 三层式架构

    三个应用层: 用户界面层(User Interface Layer,UIL)。 业务逻辑层(Business […]...

  7. PHP连接MySQL数据库的几种方式

    PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi :MySQLi 只针对 MySQL […]...

  8. SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path、stuff的使用

    接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的 […]...

展开目录

目录导航