28 BOM DOM

28 BOM DOM

一、BOM location地址栏对象

- hostname
	设置或返回当前URL的主机名

- href
	获取地址栏中完整的地址,可以实现JS的网页跳转
    
- pathname
	文件路径及文件名
    
- protocol
	协议,如https://、ftp://

- hash
	锚点名称
    
- reload()
	刷新网页
    
- reload([true])
	强制刷新页面,会让数据重新加载
    
- search()
	获取查询字符串
    
<meta http-equiv = "refresh" content = "5;url = http://www.baidu.con">
    网页打开5s后会自动跳转到http://badidu.com

二、BOM navigator对象

基本没怎么使用了

- appName	appCodeName
	浏览器软件名称(现在没有多大参考意义)
    
- appVersion
	浏览器软件的核心版本号
    
- platform
	平台

- userAgent
	浏览器版本信息

三、BOM history对象

- back()		后退

- forward()		前进

- go()			可以控制后退和前进

history.back() === history.go(-1)
history.forward() === history.go(1)

四、BOM screen屏幕对象

- width		返回屏幕的宽度,只读属性

- height	返回屏幕的高度,只读属性

- availWidth	屏幕的有效宽度,不含任务栏,只读属性

- availHeight	屏幕的有效高度,不含任务栏,只读属性

五、BOM window对象事件

- window.onload
	当网页加载完成,指<body>标记的所有内容全部加载完成,才触发该事件(条件)

- onscroll	滚动事件
    
    scrollTop	垂直滚动条的距离
    scrollLeft 	水平滚动条的距离
    
    window.innerHeight	浏览器窗口的可见高度
    window.innerWith	浏览器窗口的可见宽度
    
    获取元素的兼容写法
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
    
- window.onresize	
    事件会在窗口或框架被调整大小时发生

六、使用BOM模拟粘性定位

设置布局

<header></header>
<nav></nav>
<main></main>

设置一些简单样式

*{
	padding: 0;
	margin: 0;
}
header{
	width: 100%;
	height: 50px;
	background: pink;
}
nav{
	width: 100%;
	height: 100px;
	background: skyblue;
}
main{
	width: 100%;
	height: 1200px;
	background: hotpink;
}

设置JS

onscroll = function(){
	var nav = document.getElementsByTagName("nav")[0]
	var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
	if(scrollTop >50){
		nav.style.position = "fixed"
		nav.style.top = 0
	}
	else{
		nav.style.position = ""
	}
}

七、DOM

DOM Document Object Model 文档对象模型,可以把网页中所有的东西看作是对象

DOM是W3C制定的网页标准或规则,而这个标准,在浏览器中,以“对象”的形式得以实现

DOM的官方定义,DOM可以使脚本,动态的访问或操作,网页的内容、网页外观、网页结构

八、DOM的分类

核心DOM:提供了同时操作HTML文档和XML文档的公共的属性和方法

HTML DOM:针对HTML文档提供的专用的属性方法

XML DOM:针对XML文档提供的专用的属性和方法。

CSS DOM:提供了操作CSS的属性和方法

Event DOM:事件对象模型。如:onclick、 onload等

九、DOM 核心DOM操作

元素节点类型

- document	文档节点,代表整个网页,不代表任何HTML标记。
	但它是html节点的父节点

- element	元素节点,指任何HTML标记。每一个HTML标记就称一个“元素节点”
	它可以有文本节点和属性节点

- attribute	属性节点。指HTML标记的属性

- text	是节点树的最底节点

- comment	注释节点

访问节点

- firstChild	第1个子节点

- lastChild		最后一个子节点

- childNodes	子节点列表,是一个数组

- parentNode	父节点

- nodeName		节点名称,返回标签

- nodeValue		属性节点的属性值

- nodeType		节点类型,返回值是数字
	如果节点是元素节点,则nodeType属性返回1
	如果节点是属性节点,则nodeType属性返回2
	如果节点是文本节点,则nodeType属性返回3
	如果节点是注释节点,则nodeType属性返回8
    
- document.documnetElemnet	查找<html>标记的方法

- document.body		查找<body>标记的方法

属性的操作

- setAttribute(name, value)	给某个节点添加一个属性

- getAttribute(name)	获取某个节点属性的值

- removeAttribute(name)		删除某个节点的属性

创建节点

- document.createElement(tagName)
	创建一个指定的HTML标记,一个节点
	tagName	是指不带<>HTML标记名称

- parentNode.appendChild(childNode)
	将创建的节点,追加到某个父节点下
    parentNode代表父节点,父节点必须存在
    childNode代表子节点
    
- box.insertBefore()
	可在已有的子节点前插入一个新的子节点先放在排在前面的元素,再写其他元素
    参数1	表示新建的节点
    参数2	表示要插入的那个节点之前

删除节点

- parentNode.removeChild(childNode)
	删除某个父节点的子节点
    parentNode	代表父节点
    childNode	代表要删除的子节点

十、HTNL DOM的操作

- getElementById()
	查找网页中指定id的元素对象
    
- getElementsByTagName(tagName)
	查找指定的HTML标记,返回一个数组
    
- getElementsByName("Name")
	通过name值获取元素,返回值是数组,通常用来获取有name的input的值

- getElementsByClassName() 
	通过class名获取元素,返回值是数组

- document.querySelectorAll()
	ES5新增选择器
    
- document.querySelector()
	返回单个元素

十一、元素属性的对象

在HTML中加“标记”

在DOM中叫“节点”

在JS中叫“对象”

- tagName	标签名称

- className	CSS类的样式

- id	同HTML标记的id属性一样

- title	同HTML标记的title属性一样

- style	同HTML标记的style属性一样

- innerHTML	包含HTML标记中的所有的内容,包括HTML标记等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值