BOM
- BOM(Browser Object Model): 浏览器对象模型
- 其实就是操作浏览器的一些能力
- 我们可以操作哪些内容
- 获取一些浏览器的相关信息(窗口的大小)
- 操作浏览器进行页面跳转
- 获取当前浏览器地址栏的信息
- 操作浏览器的滚动条
- 浏览器的信息(浏览器的版本)
- 让浏览器出现一个弹出框(alert/confirm/prompt)
- BOM 的核心就是 window 对象
- window 是浏览器内置的一个对象,里面包含着操作浏览器的方法
获取浏览器窗口的尺寸
innerWidth
和innerHeight
- 这两个方法分别是用来获取浏览器窗口的宽度和高度(包含滚动条的)
var windowWheight = window.innerWidth; //获取浏览器的宽
var windowHeigh = window.innerHeight; //获取浏览器的高
浏览器的弹出层
alert
var windowAleat = alert('我是一个提示框');//在浏览器弹出一个提示框
confirm
var windowConfirm = confirm('我是一个询问框');// 在浏览器弹出一个询问框
prompt
var windowprompt = prompt('我是一个输入框'); // 是在浏览器弹出一个输入框
浏览器的地址信息
location
- 在 window 中专门用来存储浏览器的地址栏内的信息的对象
location.href
- 这个属性存储的是浏览器地址栏内 url 地址的信息
var windowLocation = window.location.href;//-会把中文编程 url 编码的格式
这个属性也可以给他赋值
var window. location.href=https://www.baidu.com/;//这个就会跳转页面到后面你给的那个地址
location.reload()
- 这个方法会重新加载一遍页面,就相当于刷新是一个道理
var window.location.reload()//注意:不要写在全局,不然浏览器就会一直处在刷新状态
浏览器的历史记录
history
window 中专门用来存储历史记录信息的对象
history.back()
- 是用来会退历史记录的,就是回到前一个页面,就相当于浏览器上的 ⬅️ 按钮
window.history.back()//前提是你要有上一条记录
history.forward
- 去到下一个历史记录里面,也就是去到下一个页面,就相当于浏览器上的 ➡️ 按钮
window.history.forward();//你要之前有过回退操作,不然现在就是最后一个页面
浏览器的 onload 事件
- 这个不在是对象了,而是一个事件
- 是在页面所有资源加载完毕后执行的
window.onload = funtcion(){console.log('页面已经加载完毕');}
浏览器的 onscroll 事件
-
这个 onscroll 事件是当浏览器的滚动条滚动的时候触发
-
或者鼠标滚轮滚动的时候触发
window.onscroll = function(){console.log('滚动了');}
浏览器滚动的距离
scrollTop
-
获取的是页面向上滚动的距离
-
一共有两个获取方式
window.onscroll = function(){console.log(document.body.scrollTop);//谷歌火狐显示0,IE显示}
window.onscroll = function(){console.log(document.documentElement.scrollTop);//谷歌火狐显示,IE显示}
window.onscroll = function(){console.log(window.pageYOffset);//苹果显示,高版本其他浏览器也显示}
scrollLeft
-
获取页面向左滚动的距离
-
也是两个方法同上
window.onscroll = function(){console.log(window.pageXOffset);//苹果显示,高版本其他浏览器也显示}
定时器
- 在 js 里面,有两种定时器,倒计时定时器 和 间隔定时器
倒计时定时器
-
倒计时多少时间以后执行函数
-
语法:
setTimeout(要执行的函数,多长时间以后执行)
-
会在你设定的时间以后,执行函数
var time = setTimeout(function(){console.log('一秒后执行');//页面打开 1 秒钟以后执行函数
},1000)
//返回值是,当前这个定时器是页面中的第几个定时器
间隔定时器
-
每间隔多少时间就执行一次函数
-
语法:
setInterval(要执行的函数,间隔多少时间)
var time = setInterval(function(){console.log('间隔一秒');//每间隔 1 秒钟执行一次函数
},1000)
//返回值是,当前这个定时器是页面中的第几个定时器
定时器的返回值
-
设置定时器的时候,他的返回值是部分
setTimeout
和setInterval
的 -
只要有一个定时器,那么就是一个数字
var timerId = setTimeout(function () {console.log('倒计时定时器')}, 1000)var timerId2 = setInterval(function () {console.log('间隔定时器')}, 1000)console.log(timerId) // 1console.log(timerId2) // 2
关闭定时器
- 我们有两个方法来关闭定时器
clearTimeout
和clearInterval
var time = setTimeout(function(){console.log('一秒后执行');
},1000)
clearTimeout(time);
var time2 = setInterval(function(){console.log('间隔一秒');//每间隔 1 秒钟执行一次函数
},1000)
clearInterval(time2);