笔记《javascript高级程序设计》 第12章 DOM2和DOM3

.png)

.png)
- document.defaultView.getComputedStyle(mydiv,:after / null) —— 此方法在IE9 以下浏览器中无法生效
- 在IE8及以下中可使用 .currentStyle 属性,来获取当前元素的样式

.png)
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <style>
- *{ margin: 0; padding: 0; }
- .waidiv{width: 600px; height: 700px; border: 6px #C0C0C0 solid;}
- .py{width: 200px; height: 150px; background: #444; padding: 4px; margin: 10px; border: 5px #FF0000 solid;}
- .par1{ padding: 40px;}
- .par2{ padding: 30px;}
- </style>
- </head>
- <body>
- <div class="par2">
- <div class="par1">
- <div class="waidiv">
- <div id="py" class="py">偏移量测试</div>
- </div>
- </div>
- </div>
- <input type="button" value="元素宽" onclick="getEleWidth()"/>
- <input type="button" value="元素高" onclick="getEleHeight()"/>
- <input type="button" value="getOffsetLeft" onclick="getEleoffLeft()"/>
- <input type="button" value="getOffsetTop" onclick="getEleoffTop()"/>
- <input type="button" value="元素距浏览器顶部距离" onclick="getActualTop(document.getElementById('py'))"/>
- <input type="button" value="元素距浏览器左距离" onclick="getActualLeft(document.getElementById('py'))"/>
- <script>
- var py = document.getElementById("py");
- function getEleWidth(){
- alert(py.offsetWidth);
- }
- function getEleHeight(){
- alert(py.offsetHeight);
- }
- function getEleoffLeft(){
- alert(py.offsetLeft);
- }
- function getEleoffTop(){
- alert(py.offsetTop);
- }
- function getActualLeft(element){
- var actuaLeft = element.offsetLeft;
- var current = element.offsetParent;
- while( current !== null){
- actuaLeft += current.offsetLeft;
- current = current.offsetParent;
- };
- alert(actuaLeft);
- }
- function getActualTop(element){
- var actuaTop = element.offsetTop;
- var current = element.offsetParent;
- while(current !== null){
- actuaTop += current.offsetTop;
- current = current.offsetParent;
- };
- alert(actuaTop);
- }
- console.log()
- </script>
- </body>
- </html>
混杂模式、标准模式下,scrollWidth、clientWidth、document.documentElement.scrollWidth、document.body.scrollWidth
对于混杂模式下IE 需要用 document.body代替document.documentElement
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <style>
- .testscroll{ width: 2000px; height: 1500px; background: #C0C0C0;}
- </style>
- </head>
- <body>
- <div class="testscroll" id="adiv"></div>
- <script>
- var adiv = document.getElementById("adiv");
- console.log("scrollWidth:"+document.documentElement.scrollWidth);
- console.log("scrollHeight:"+document.documentElement.scrollHeight);
- console.log("clientWidth:"+document.documentElement.clientWidth);
- console.log("clientHeight:"+document.documentElement.clientHeight);
- function getWin(){
- var mode = document.compatMode ;
- // 是否处于标准模式
- if(mode == "CSS1Compat"){
- // 疑问:是不是现在浏览器版本变高,然后都同步了?
- // 我测试过程中,谷歌、火狐、IE里clientWidth取到的都是视口宽度,书上说的谷歌scrollWidth为视口宽度
- alert("可视区域宽度为:"+document.documentElement.clientWidth);
- alert("可视区域高度为:"+document.documentElement.clientHeight);
- // 由于浏览器之间存在差异,以scrollWidth和clientWidth中求大值最靠谱
- var docWin = Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth);
- var docHei = Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight);
- alert("标准模式下文档的宽度:"+docWin);
- alert("标准模式下文档的宽度:"+docHei);
- }
- // 是否处于混杂模式
- else if(mode == "BackCompat"){
- var docWin = Math.max(document.body.scrollWidth,document.body.clientWidth);
- var docHei = Math.max(document.body.scrollHeight,document.body.clientHeight);
- alert("混杂模式下文档的宽度:"+docWin);
- alert("混杂模式下文档的宽度:"+docHei);
- }
- }
- window.onload = function(){
- getWin();
- }
- </script>
- </body>
- </html>
笔记《javascript高级程序设计》 第12章 DOM2和DOM3的更多相关文章
- javascript高级程序设计第3版——第12章 DOM2与DOM3
12章——DOM2与DOM3 为了增强D0M1,DOM级规范定义了一些模块. DOM2核心:为不同的DOM类型引入了一些与XML命名空间有关的方法,还定义了以编程方式创建Document实例的方法: ...
- 《JavaScript高级程序设计》——第二章在HTML使用JavaScript
这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...
- JavaScript 高级程序设计 第5章引用类型 笔记
第五章 引用类型 一.object类型 1.创建方法: 1.使用new 操作符创建 var person=new object() Person.name=”Nicholasa” Porson.age ...
- JavaScript高级程序设计第20章JSON 笔记 (学习笔记)
第二十章 JSON 1.Json 可以表示三种类型的值: 1.简单值: 表示数值:5 表示字符串:“hello wrold”注表示字符串时必须使用双引号 2.对象: {“name”:“mi”,”ag ...
- JavaScript高级程序设计第14章表单脚本 (学习笔记)
第十四章 表单脚本 1.阻止默认表单提交 1.提交表单数据 1.使用type=submit提交按钮 2.使用submit():方法 注意:当用户点击提交按钮时,会触发submit事件,从而在这里我们有 ...
- 读书笔记 - javascript 高级程序设计 - 第一章 简介
第一章 简介 诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262 一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...
- 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript
1 <script>的6个属性 async 立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer 文档显示之后再执行脚本,只对外部脚本有效 lan ...
- javascript高级程序设计第三章的一些笔记
[TOC] 1. 语法 1.1 区分大小写 变量.函数名和操作费都区分大小写. 1.2 标识符 标识符指变量.函数.属性的名字,或者函数的参数.标识符按以下规则组合: 第一个字符必须是一个字母,下划线 ...
- 《JavaScript 高级程序设计》第一章:简介
JavaScript 历史 JavaScript的诞生的主要是当时的 netspace 公司谋求为自己的浏览器 Navigator 添加一种脚本语言,以便在本地客户端进行一些行为操作,而这一功能的需求 ...
随机推荐
- 解决 i5 6500 安装黑苹果 Sierra 显卡不正常问题
i5 6500内置HD 530显卡,装好Sierra显卡驱动不太正常. 先下载Clover configurator 用Clover configurator加载 EFI (Mount EFI)分区 ...
- Learning opencv续不足(七)线图像的设计D
因为线图像startline有了起点和终点,我们就可以用DDA法求出线上所有点,任意斜率直线通过四象限八区域查表法界定.我们只示范一个区域:函数为: public PointF DdaFindPtIm ...
- 洛谷——P1613 跑路
P1613 跑路 题目大意: 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B ...
- 使用python的几个小经验(查看文档)
好久没有水博客了,未来再过20天不到的时间又得参加软考,今天终于得好好水一发帖子 关于Python,很多人包括我之前都不知道怎么找文档,现在有一个好办法,就是在命令行模式下调用pydoc –p xxx ...
- win10下VMware Workstation 14运行虚拟机黑屏
最新 升级电脑Win10自动升级后,在打开虚拟机后,很卡,且出现黑屏,但是挂起后仍能显示锁屏界面,网上就一顿搜.下面放解决方法. 管理员运行 netsh winsock reset 帮你解决一切烦恼. ...
- bytes类型和python中编码的转换方法
一.bytes类型 bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型.例如: >>> a = "中国" >>> ...
- 利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁
//利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁 #include<reg52.h> #define uchar unsigned char #define ...
- linux学习4-crontab定时任务
crontab -e 在当前用户下创建定时任务 我们通过这样一张图来了解 crontab 的文档编辑的格式与参数 在了解命令格式之后,我们通过这样的一个例子来完成一个任务的添加,在文档的最后一排加上 ...
- ajax学习----json,前后端交互,ajax
json <script> var obj = {"name": "xiaopo","age": 18,"gender ...
- Hibernate基于注解annotation的配置
Annotation在框架中是越来越受欢迎了,因为annotation的配置比起XML的配置来说方便了很多,不需要大量的XML来书写,方便简单了很多,只要几个annotation的配置,就可以完成我们 ...