JavaScript中的BOM--浏览器对象模型

BOM浏览器对象模型

  • 概念:提供我们操作浏览器的能力

  • 浏览器窗口对象 :window 核心对象

    • 创建方式:系统自动创建

    • 属性和方法

    • window特殊属性 - window子对象

      • history历史对象
        location位置
        navigator包含浏览器相关信息
        screen用户显示屏幕相关属性
        document文档对象
         var history =  window.history
        history.go()
        

常用方法

弹框相关

alert()信息提示框(弹出消息)
confirm()信息确认框 (弹出两个选项)
prompt()信息输入框 (弹出获取输入框)
  • alert():信息提示框

    • 注意事项:window对象属性调用方法的时候可以不加window
  • confirm() ;信息确认框

    • 数据类型:布尔值
    • 两个选项卡
      • 确定==>true
      • 取消==>flase
  • prompt(): 信息输入框

    • 确定 输入框内容
      • 数据类型:字符串:string
    • 取消: null

打开和关闭网页

  • open(“网址”):打开指定网页

  • close():关闭当前网页

      		//消息确认框获取
      	    var isok =  confirm('是否确认')
            if(isok){
            // open('https://www.baidu.com/')
            close()
    
            }else{
                alert('点击确认才能打开')
            }
    

定时器

  • 执行一次:setTimeout()

    • 只是倒计时1次
           var timer = setTimeout(function(){
                console.log('2秒我就出现');
            },2000)  //倒计时2000(2秒倒计时)
    
  • 循环执行:setInterval()

    • 循环计时1秒钟执行一次(循环)
            var count = 1		//写在循环函数外面,才不会重复定义
            var timeOut = setInterval(function(){
                count++			//让计数器加1
                console.log(count);
                if(count==5){	//设置计数器的结束值
                    clearTimeout(timeOut)   //<结束计时器>
                }
            },1000)  //每一秒执行一次1000(1秒)
    
  • 结束记时间:clearTimeout(循环计时函数)

滚动事件

  • window.onscroll:监测滚动条是否滚动

            window.onscroll = function(){
                console.log('d1'+document.documentElement.scrollTop);
                console.log('d2'+document.body.scrollTop)
                console.log('滚动了');
            }
    d1200
    bom.html:89 d20
    bom.html:90 滚动了
    
  • 概念:滚动距离实际时页面文档卷入的高度 == 滚动条距离顶部高度

  • document.documentElement.scrollTop

  • 兼容写法:document.body.scrollTop 没有DOCTYPE声明时用

  • 示例:点击回到顶部

    //css部分
	<style>
        div{
            width: 1000px;
            height: 18000px;
            background-color: skyblue;
        }
        button{
            position: fixed; //设置固定定位
            left: 100px;
            top: 100px;
        }
    </style>
    
	//script部分
	<script>
    function put(){
        document.documentElement.scrollTop = 0
    }
    </script>

	//body部分
	<button onclick="put()">回到顶部</button> //使用onclick = 'put()'点击事件
  • 例题延申:平滑回到顶部

    function put() {
        var topWindow = document.documentElement.scrollTop  //获取顶部的距离
        console.log(typeof topWindow)                       //number
        //设置一个循环计时器
        var timer = setInterval(function () {
            //计时器结束条件
            if (topWindow <= 0) {   //当顶部距离小于等于0时结束timer
                clearTimeout(timer) //结束计时器
            }
            topWindow = topWindow - 500  //每一次循环减去500
            document.documentElement.scrollTop =topWindow   //再把每次减去的值赋值给他
    
        }, 50)
        }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端达闻西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值