Web API(5)

62 阅读3分钟

网页特效

一、滚动事件

当页面进行滚动时触发的事件 事件名:scroll 监听整个页面滚动:

 <script>
        window.addEventListener('scroll',function () {
            console.log('我滚动了');
        })
  </script>

滚动距离

      // 页面级别滚动
        window.addEventListener('scroll',function () {
            // 这个代码可以获取到当前页面的滚动距离
            console.log(document.documentElement.scrollTop);
        })

二、加载事件

1.事件名:load

加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件

 window.addEventListener('load', function () {
        console.log('load 标签加载完毕-标签对应外部资源加载完毕');
      });
2.事件名:DOMContentLoaded

当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像等完全加载

 document.addEventListener("DOMContentLoaded",function () {
         console.log("DOMContentLoaded 标签加载完毕就触发了");
      })

!!监听整个页面滚动给 window 或 document 加

三、元素大小和位置

1.scroll家族
   		//获取当前元素宽高不包含滚动条(-17)

        console.log(scrollDom.scrollWidth); 
        console.log(scrollDom.scrollHeight); 
        //获取当前元素的滚动距离
        scrollDom.addEventListener('scroll',function () {
            console.log(this.scrollLeft); 
            console.log(this.scrollTop);
        })
2.offset家族
		//获取当前元素可视区宽高和padding、border
,包含滚动条
        const offsetDom = document.querySelector('.offset')
        console.log(offsetDom.offsetWidth); 
        console.log(offsetDom.offsetHeight);
        //获取当前元素位置,相对于有定位的父元素再相对于页面
        console.log(offsetDom.offsetLeft); 
        console.log(offsetDom.offsetTop);

3.client家族
 	    //获取当前元素可视区宽高不包含边框、滚动条(-17)
        const clientDom = document.querySelector('.client');
        console.log(clientDom.clientWidth)
        console.log(clientDom.clientHeight)
        // 获取左上边框大小
        console.log(clientDom.clientLeft);
        console.log(clientDom.clientTop);

window对象

一、BOM(浏览器对象模型)

1.BOM(Browser Object Model ) 是浏览器对象模型

1649944633753.png

2.window 是浏览器内置中的全局对象,我们所学习的所有 Web APIs 的知识内容都是基于 window 对象实现的 3.window 对象下包含了 navigator、location、document、history、screen 5个属性,即所谓的 BOM (浏览器对象模型)

二、定时器-延时函数

语法: setTimeout

   <script>
      // 延时器 - 只会执行一次而已
      let timeid = setTimeout(function () {
        console.log('猜猜我是谁');
      }, 5000);
      // 取消延时器
      // clearTimeout(timeid);
    </script>
三、递归

1.使用场景:一个函数,可以打印出 一个dom元素的所有祖先元素直到没有

 	<div>
      <p>
        <span
          ><a href=""> <button></button> </a
        ></span>
      </p>
    </div>
    <script>
        const button=document.querySelector('button')
        getParent(button)
      function getParent(dom) {
          console.log(dom);
          if (dom.parentNode) {
              // 如果有父元素
            getParent(dom.parentNode)
          }else {
              console.log('结束了');
          }
      }
    </script>

2.递归函数可以使用 setTimeout 实现 setInterval 一样的功能

   <script>
     let index=0
     function func() {
         console.log(++index);
         setTimeout(func,1000);
     }
     func()
    </script>
四、location对象
1.location 的数据类型是对象,它拆分并保存了 URL 地址的各个组成部分

常用属性和方法: ①href 属性获取完整的 URL 地址,对其赋值时用于地址的跳转

<body>
    <button>去百度看看</button>
    <script>
        const button=document.querySelector('button')
        button.addEventListener('click',function () {
            跳转到百度
           location.href='http://www.baidu.com' 
        })
       location.href=location.href (有刷新功能)
    </script>
</body>

②search 属性获取地址中携带的参数,符号 ?后面部分

<body>
    <button>去百度看看</button>
    <script>
        const button=document.querySelector('button')
        button.addEventListener('click',function () {
        console.log(location.search)
        })
    </script>
</body>

③hash 属性获取地址中的哈希值,符号 # 后面部分

<body>
    <button>去百度看看</button>
    <script>
        const button=document.querySelector('button')
        button.addEventListener('click',function () {
        console.log(location.hash)
        })
    </script>
</body>

④reload 方法用来刷新当前页面,传入参数 true 时表示强制刷新

<body>
    <button>去百度看看</button>
    <script>
        const button=document.querySelector('button')
        button.addEventListener('click',function () {
         location.reload(true) 强制刷新
        })
    </script>
</body>
五、navigator对象

navigator的数据类型是对象,该对象下记录了浏览器自身的相关信息 常用属性和方法: 通过 userAgent 检测浏览器的版本及平台

1649950037000.png

作用: 1.检测当前浏览器的版本和型号 2.可以识别出是安卓手机/iphone手机做出反应 3.可以识别出当前反问设备是pc端还是移动端,后台会根据设备类型来返回对应的平台页面

六、histroy对象

history 的数据类型是对象,该对象与浏览器地址栏的操作相对应,如前进、后退、历史记录等 常用属性和方法:

1649951279805.png

<body>
    <a href="http://www.baidu.com">百度</a>
    <button class="forward">前进</button>
    <button class="back">后退</button>
    <script>
        const forward=document.querySelector('.forward')
        forward.addEventListener('click',function () {
            history.forward()
            // history.go(1) 前进一个记录
        })
        const back=document.querySelector('.back')
        back.addEventListener('click',function () {
            history.back()
            // history.go(-1)后退一个记录
        })
    </script>
</body>

swiper 插件使用:

1 下载swiper对应的文件 - css + js
2 分布引入他们
<link rel="stylesheet" href="./swiper/swiper-bundle.min.css" />
 <script src="./swiper/swiper-bundle.min.js"></script>
3 拷贝别人的固定结构
4 拷贝写好的swiper 初始化js代码