JS复习-WebApi(5)

三大家族

offset家族

作用:获取元素‘自身’真是宽高与位置

  • offsetWidth/offsetHeight: 真实宽度 = width+border+padding

  • offsetLeft/offsetTop 自身 左/上 外边框到定位父元素 左上 内边框距离

scroll家族

作用:获取‘元素内容’真实宽高与位置

  • scrollWidth / scrollHeight : 获取内容的宽高
  • scrollLeft / scrollTop : 内容的位置(就是滚动条滚动的距离)
  • 应用:一般网页的头部变成固定定位和标准流

client家族

作用:获取元素 ‘可视区域’ 宽高 和 位置

  • clientWidth / clientHeight : 可视区域大小
  • clientLeft / clientTop : 可视区域位置(就是左边框 和 上边框 宽度)
  • 应用:判断不同尺寸的屏幕适配、横屏和竖屏判断

获取网页滚动距离

  1. 给页面注册滚动事件(window.onscroll)因为该事件实在window中滚动,所以要给window中注册事件
  2. 获取页面滚动的距离:html标签的scrollLeft
  3. document.documentElement表示document的根元素,也就是表示html
  4. 页面事件:
    1. 页面移动:window.onmousemove
    2. 页面滚动:window.onscroll
    3. 页面大小变化:window.onresize

BOM

js组成

  • ECMAScript对象:(array,object,Math,Date)
  • DOM(document) :网页中的内容
  • BOM :浏览器的窗口

window对象

  1. window对象 : 是js中的顶级对象, 所有的全局方法和属性都是window对象的成员

  2. 只要是window对象的成员,使用时一律可以省略window

  3. 方法:

    1. 打开窗口 window.open()
    2. 关闭窗口 window.close()
  4. 事件:

    1. window.onload = function(){}加载事件 : DOM树 + 外部资源加载完毕后执行

      优势:如果图片尺寸过大,图片不能及时加载,log就会直接打印出来,导致图片高度不正确,使用onload可以解决这个问题,他会等DOM树和外部资源加载后在执行

      示范:

       	window.onload = function () {
                  let box = document.querySelector('.box')
                  console.log(box.scrollWidth, box.scrollHeight)
              }
      
    2. window.onbeforeunload = function(){}关闭事件: 页面关闭之前执行(存储数据)

对象

location对象:

  1. location对象:浏览器地址栏url
  2. 重点:修改localtion对象的href,可以实现网页的跳转
  3. 区别:
    • a标签的href是用于无条件渲染,无逻辑性,点击100%跳转,可以应用在:订单、商品详情
    • location的href是有条件跳转,有逻辑性,点击需要有满足条件,才跳转,应用于:账号登良等
  4. 三个方法:
    1. location.assign(‘url’) : 跳转(可以回退)
    2. location.replace(‘url’) : 替换(不可以回退)
    3. location.reload(‘url’) : 刷新(相当于电脑中的F5)

history对象:

  1. history对象 : 历史记录
  2. 三个方法:
    1. history.back() : 返回上一页
    2. history.forward() : 前进下一页
    3. history.go(数字) :数字负数就是回退几页,正数就是前进几页

navigator对象 :

  1. navigator对象 : 用户信息
  2. 应用:收集用户信息,不同的手机不同的价格

screen对象:

  1. screen : 用户电脑屏幕 (不常用)
  2. 一般用于开发游戏里面,询问用户分辨率过低,是否需要调整

存储对象

localStorage

  1. localStorage:本地储存

  2. 应用:免登陆

  3. 语法:

    1. 存数据:localStorage.setItem(‘属性名’,属性值)
    2. 取数据:localStorage.getItem(‘属性名’)
    3. 删数据:lacalStorage.removeItem(‘属性名’)
    4. 清空数据:localStorage.clear( )
  4. 每个网站的localStorage都是独立的

  5. 注意:

    1. localStorage是永久存储,除非手动清除,否则一直存在
    2. 只能存储字符串
  6. 示范:

    	//存数据 :  localStorage.setItem('属性名',属性值)
    	document.querySelector('.setItem').onclick = function () {
                localStorage.setItem('name', 'admin')
                localStorage.setItem('age', '18')
                localStorage.setItem('city', 'China')
                localStorage.setItem('sex', '男')
            }
            //取数据 :  localStorage.getItem('属性名')
            document.querySelector('.getItem').onclick = function () {
    
                console.log(localStorage.getItem('name'))
            }
            // 删数据 :   localStorage.removeItem('属性名')
            document.querySelector('.removeItem').onclick = function () {
                localStorage.removeItem('age')
            }
    
            //清空数据 : localStorage.clear()
            document.querySelector('.clear').onclick = function () {
                localStorage.clear()
            }
    

    sessionStorage

    1. sessionStorage:本地储存
    2. 应用:页面间传值,常见于移动端
    3. 语法:
      1. 存数据:sessionStorage.setItem(‘属性名’,属性值)
      2. 取数据:sessionStorage.getItem(‘属性名’)
      3. 删数据:sessionStorage.removeItem(‘属性名’)
      4. 清空数据:sessionStorage.clear( )
    4. 每个网站的sessionStorage都是独立的
    5. 注意:
      1. sessionStorage是临时存储,只要页面一关闭,数据就自动清空了
      2. 只能存储字符串,如果是其他类型,编译器会自动帮你转成字符串后存储

localStorage与SessionStorage异同点

  • 相同点:作用一致,都是用于存储数据
  • 不同点:存储方式不同
    • localStorage:硬盘存储
    • sessionStorage:内存存储

JSON格式

  1. 作用:解决数据 跨平台兼容性 是一种数据格式,本质字符串

  2. 可以解决:js中使用localStorage存储对象,来做免登陆等

  3. 语法:

    • json -> js : let jsObj = JSON.parse( json格式 )
    • js -> json : let jsonStr = JSON.stringify( js对象 )
    	// JSON格式字符串
            let jsonobj = '{"name":"张三","age":"18","sex":"男"}'
            console.log(jsonobj)
            // JSON变js
            let json = JSON.parse(jsonobj)
            console.log(json)
            // js对象变JSON
            let obj = {
                name: '张三',
                age: 20,
                sex: '女'
            }
            let jsons = JSON.stringify(obj)
            console.log(jsons)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值