整体介绍
BOM常用对象
1)Window对象
2)Navigator对象
3)History对象
4)Location对象
BOM特效开发
1)BOM特效开发
Window对象
BOM是什么
◆BOM(Browser Object Model,浏览器对象模型)是JS与浏览器窗口交互的接口
一些与浏览器改变尺寸、滚动条滚动相关的特效,都要借助BOM技术
window对象
window对象是当前S脚本运行所处的窗口,而这个窗口中包含DOM结构,window.document属性就是document对象
在有标签页功能的浏览器中,每个标签都拥有自己的window对象;也就是说,同一个窗口的标签页之间不会共享一个window对象
全局变量是window的属性
全局变量会成为window对象的属性
这就意味着,多个js文件之间是共享全局作用域的,即jS文件没有作用域隔离功能
内置函数普遍是window的方法
如setInterval()、alert()等内置函数,普遍是window的方法
console.log(window.alert =alert);//true
console.log(window.setInterval =setInterval);//true
窗口尺寸相关属性
获得不包含滚动条的窗口宽度,要用document.documentElement.clientWidth
resize事件
在窗口大小改变之后,就会触发resize事件,可以使用window.onresizewindow.addEventListener('resize')
来绑定事件处理函数
己卷动高度
window.scrollY属性表示在垂直方向已滚动的像素值
已动高度
document.documentElement.scrollTop
属性也表示窗口卷动高度
var scrollTop = window.scrollY || document.documentElement.scrollTop
document.documentElement.scrollTop不是只读的,而window.scrollY是只读的
用途比如返回顶部菜单开发
◆在窗口被卷动之后,就会触发scroll事件,可以使用window.onscroll或者window.addEventListener(‘scroll’)来绑定事件处理函数
用途是落地页开发,滚动的时候突然出现图片广告等
Navigator对象
window.navigator属性可以检索navigator对象,它内部含有用户此次活动的浏览器的相关属性和标识
History对象
window.history对象提供了操作浏览器会话历史的接口
常用操作就是模拟浏览器回退按钮
history.back();//等同于点击浏览器的回退按钮
history.go(-1); //等同于history.back();
Location对象
window.location标识当前所在网址,可以通过给这个属性赋值命令浏览器进行页面跳转
window.location ='http://www.imooc.com';
window.location.href ='http://www.imooc.com';
重新加载当前页面
可以调用location的reload方法以重新加载当前页面,参数true表示强制从服务器强制加载
window.location.reload(true);
GET请求查询参数
window.location.search属性即为当前浏览器的GET请求查询参数
比如网址https:/www.imooc.com/?a=1&b=2
console.log(window.location.search);
得到结果"?a=1&b=2"
BOM特效开发
返回顶部按钮制作
返回顶部的原理:改变document..documentElement.scrollTop.属性,通过定时器逐步改变此值,则将用动画形式返回顶部
楼层导航小效果
DOM元素都有offsetTop属性,表示此元素到定位祖先元素的垂直距离
定位祖先元素:在祖先中,离自己最近的且拥有定位属性的元素
offsetTop直接得到这个元素到顶部页面的距离
楼层导航(目录):