23.4.24前学习笔记

cyh822blogs / 2023-05-04 / 原文

可通过document.documentElement.scrollTop=0控制返回页面顶部

 

scrollTo方法

 window.scrollTo(x,y)//控制页面移动到哪

 

 

页面尺寸事件

  window.addEventListener('resize',function(){
        //改变屏幕尺寸时发生变化,可代替媒体查询
        let w=document.documentElement.clientWidth//获取元素可见的宽,不包含边框
        //offsetWidth包含盒子border,padding,收到父亲定位影响(最近一级带有定位的祖先影响)
 })
 
 

可通过document.documentElement.scrollTop=0控制返回页面顶部

 

scrollTo方法

 window.scrollTo(x,y)//控制页面移动到哪

 

 

页面尺寸事件

  window.addEventListener('resize',function(){
        //改变屏幕尺寸时发生变化,可代替媒体查询
        let w=document.documentElement.clientWidth//获取元素可见的宽,不包含边框
        //offsetWidth包含盒子border,padding,收到父亲定位影响(最近一级带有定位的祖先影响)
 })
 
 

## window对象

BOM浏览器对象模型

DOM在BOM下

DOM前面很多都省略了window,如

~~~
var num=10
console.log(window.num)
~~~

## 定时器--延时函数

~~~javascript
let time=setTimeOut(回调函数,等待的毫秒数)//仅仅只执行一次,平时省略window,异步任务
clearTimeout(time)
~~~

比较:

延时函数:执行一次(比如一些五秒钟一到就关闭的广告)

间歇函数:每隔一段就执行一次,除非手动清除

## JS执行机制

1,先执行执行栈中的同步任务

2,异步任务放入任务队列中

3,一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务

(事件循环event loop)

## location对象

location

~~~javascript
<div>
还有5秒跳转
</div>
<script>
console.log(location)//拆分并保存了URL地址的各个部分
let div=document.querySelector('div')
let num=5
let time=setInterval(function(){
if(num){
num--
div.innerHTML=`还有${num}秒跳转`
}
else{
clearInterval(time)//关闭定时器,否则会一直运行
location.href='http://www.baidu.com'//可赋值跳转网页
}
},1000)
location.search//url ‘?’后的部分
location.hash//url ‘#’后的部分,可用于在一个页面跳转
location.reload//刷新页面
</script>
~~~

## histroy对象

histroy.back()后退

​ forward()前进

​ go(参数)1前进-1后退一个页面