BOM对象

28 篇文章 0 订阅

目录

JavaScript的组成

​编辑

什么是ECMAScript 

文档对象模型

 浏览器对象模型

 window对象的常用属性

 window的screen属性

location和history对象

History 对象

History 对象属性

History 对象方法

Location 对象

Location 对象属性

Location 对象方法

Window对象的常用方法

open()

 close 关闭

setTimeout()

Window对象的常用事件 

 window.btoa(str)

鼠标点击、移入事件

 案例:滚动监听事件,当scrolltop大于某值市显示(吸顶效果)

 案例二:无缝滚动应用

 案例3:单行滚动或者照片单个无缝滚动


JavaScript的组成

什么是ECMAScript 

ECMAScript是一种语法标准
语法、变量和数据类型、运算符、逻辑控制语句、关键字、保留字、对象
编码遵循ECMAScript标准

文档对象模型

DOM(Document Object Model)文档对象模型

 浏览器对象模型

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

提供了独立于内容与浏览器窗口进行交互的对象

 window对象的常用属性

 window的screen属性

window.screen 对象包含有关用户屏幕的信息。
window.screen 对象在编写时可以不使用 window 这个前缀。
        一些属性:
        screen.availWidth - 可用的屏幕宽度(以像素计,减去界面特性,比如窗口任务栏)
        screen.availHeight - 可用的屏幕高度

location和history对象

1.history对象
        back()      加载历史列表中的前一个 URL
        forward()  加载历史列表中的下一个 URL
        go(number)   加载历史列表中的某个具体的页面   -1 前一个页面

        go() 方法可加载历史列表中的某个具体的页面。

该参数可以是数字,使用的是要访问的 URL 在 History 的 URL 列表中的相对位置。(-1上一个页面,1前进一个页面)。或一个字符串,字符串必须是局部或完整的URL,该函数会去匹配字符串的第一个URL。如果以前过将来的历史列表中没有URL,按钮将不会导致任何行动。
2.location
        href     返回当前页面的url
        pathname    返回url的路径名
        reload() 刷新本页面

History 对象

History 对象包含用户(在浏览器窗口中)访问过的 URL。

History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。

注意: 没有应用于History对象的公开标准,不过所有浏览器都支持该对象。


History 对象属性

属性说明
length返回历史列表中的网址数

History 对象方法

方法说明
back()加载 history 列表中的前一个 URL
forward()加载 history 列表中的下一个 URL
go()加载 history 列表中的某个具体页面
    语法:
    history.go(number|URL)
<body>
    <input type="button" value="back" id="backBtn">
    <input type="button" value="forward" onclick="forWord()">
    <a href="https://www.baidu.com">跳转到百度</a>
    <input type="button" value="刷新" onclick="flushH()">
</body>
<script>
    // 1:点击事件来驱动 onclick
    var back_btn = document.getElementById("backBtn");
    back_btn.onclick = function () {
        //2.实现后退
        // history.back();
        history.go(-1); //后退一次页面
    }
    function forWord() {
        // history.forward();
        history.go(1); //跳转下一次页面
    }
    function flushH() { //刷新页面
        history.go(0);
    }
</script>

</html>

Location 对象

Location 对象包含有关当前 URL 的信息。

Location 对象是 window 对象的一部分,可通过 window.location.xxx 格式的相关属性对其进行访问。

注意: 没有应用于Location对象的公开标准,不过所有浏览器都支持该对象。


Location 对象属性

属性描述
hash返回一个URL的锚部分
host返回一个URL的主机名和端口
hostname返回URL的主机名
href返回完整的URL
pathname返回的URL路径名。
port返回一个URL服务器使用的端口号
protocol返回一个URL协议
search返回一个URL的查询部分

Location 对象方法

方法说明
assign()载入一个新的文档
reload()重新载入当前文档
replace()用新的文档替换当前文档
<body>
    <a href="javascript:;" id="btn"></a>
    当标签中的href属性没有值得话又不想刷新当前页面,这时可以给href属性赋值:(javascript:;)或javascript:void(0);
    <!-- location 可以操作url -->
    <input type="button" value="跳转到百度" id="gobaidu">
    <input type="button" value="获取当前url的pathname" id="getpathname">
    <input type="button" value="刷新当前页面" onclick="flushbtn()">
</body>
<script>
    //url的组成:访问协议://  ip:端口号 pathname
    //端口号是用来区别访问的应用的程序的
    //如果端口号是80的可以省略不写
    var gobaidu_btn = document.getElementById("gobaidu");
    gobaidu_btn.onclick = function () {
        //跳转到百度
        //href:跳转页面使用
        window.location.href = "http://www.baidu.com";
    }
    var pathname_btn = document.getElementById("getpathname");
    pathname_btn.onclick = function () {
        alert(location.pathname); //获取当前页面上的url的pathname
    }
    function flushbtn() {
        window.location.reload(); //重新载入当前文档
    }
    //函数基本都带小括号,小括号代表执行当前函数
</script>


Navigator 对象

Navigator 对象包含有关浏览器的信息。

注意: 没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。


属性说明
appCodeName返回浏览器的代码名
appName返回浏览器的名称
appVersion返回浏览器的平台和版本信息
cookieEnabled返回指明浏览器中是否启用 cookie 的布尔值
platform返回运行浏览器的操作系统平台
userAgent返回由客户机发送服务器的user-agent 头部的值
方法描述
javaEnabled()指定是否在浏览器中启用Java
taintEnabled()规定浏览器是否启用数据污点(data tainting)

Window对象的常用方法

open()

window.open(URL,name,features)

 close 关闭

<body>
    <input type="button" value="clickMe" onclick="_close()">
</body>
<script>
    function _close() {
        window.close();
    }
</script>

setTimeout()

<body>
    <div id="time">0</div>
    <input type="button" value="start" id="start">
    <input type="button" value="stop" id="stop">
</body>
<script>
    var timer = document.getElementById("time");
    var Start = document.getElementById("start");
    var Stop = document.getElementById("stop");
    var num = 0;
    var _stop;
    var fun = function () {
        num++;
        _stop = setTimeout("fun()", 1000); //计时开始
        timer.innerHTML = num;
    }
    Start.onclick = function () { //点击调用函数,计时开始
        fun();
    }
    Stop.onclick = function () {  //清除计时
        clearTimeout(_stop);
    }

    //要延迟多久去做什么事情,事件单位是毫秒
    // setTimeout(function () {
    //     alert(1);
    // }, 2000);
</script>

Window对象的常用事件 

<script>
    //onload 页面加载完毕后就会执行该函数
    window.onload = function () {
        console.log("页面加载完毕了");
    }
    window.onresize = function(){
        console.log("窗口大小发生改变了");
    }
    window.onscroll = function(){
        console.log("滚动条滚动了");
        console.log(document.documentElement.scrollTop || document.body.scrollTop);//滚动监听
    }
</script>

 window.btoa(str)

该方法返回一个 base-64 编码的字符串

<script>
    //英文: iso8859-1
    //中文: GBK
    //中英文: utf-8 utf-16 gb2312
    var str = window.btoa("hello");
    console.log(str);
    console.log(atob(str));  //中文
</script>

鼠标点击、移入事件

 案例:滚动监听事件,当scrolltop大于某值市显示(吸顶效果)

<style>
        * {
            margin: 0;
            padding: 0;
        }

        .main {
            width: 1200px;
            height: 2000px;
            margin: 0 auto;
            background-color: aquamarine;
        }

        .main .box {
            font-size: 50px;
            text-align: center;
            width: 1200px;
            height: 100px;
            background-color: blanchedalmond;
        }

        .main .bon {
            position: fixed;
            top: 0px;
            font-size: 50px;
            text-align: center;
            width: 1200px;
            height: 100px;
            background-color: #f00;
            display: none;
        }

        #ipt {
            position: fixed;
            right: 100px;
            bottom: 200px;
            width: 90px;
            height: 40px;
            border: none;
            background-color: red;
            color: aliceblue;
        }
    </style>
</head>

<body>
    <div class="main">
        <div class="box">第一个DIV</div>
        <div class="bon">第二个DIV</div>
    </div>
    <input type="button" value="点击回顶部" id="ipt">
</body>
<script>
    var timer = null;
    var go = document.getElementById("ipt");
    var omain = document.querySelector(".main")
    var obox = document.querySelector(".main .box");
    var obon = document.querySelector(".main .bon");
    go.onclick = function () {
        clearInterval(timer)
        timer = setInterval(() => {
            document.documentElement.scrollTop -= 10;
            var _st = document.documentElement.scrollTop || document.body.scrollTop;
            if (_st === 0) {
                clearInterval(timer);
            }
        }, 10)
    }
    window.onscroll = function () {
        var _b = document.documentElement.scrollTop || document.body.scrollTop;
        if (_b >= 100) {
            obon.style.display = "block";
            go.style.display = "block";
        } else {
            obon.style.display = "none";
            go.style.display = "none";
        }
    }
</script>

 案例二:无缝滚动应用

<style>
        * {
            padding: 0;
            margin: 0;
        }

        ul {
            list-style: none;
        }

        .box {
            overflow: hidden;
            margin: 0 auto;
            width: 200px;
            height: 300px;
            margin: 20px auto;
            border: 1px solid #000;
        }

        .box .con {
            padding-left: 40px;
        }

        .box .con li {
            line-height: 40px;
        }
    </style>
</head>

<body>
    <div class="box">
        <ul class="con">
            <li>从入门到放弃01</li>
            <li>从入门到放弃02</li>
            <li>从入门到放弃03</li>
            <li>从入门到放弃04</li>
            <li>从入门到放弃05</li>
            <li>从入门到放弃06</li>
            <li>从入门到放弃07</li>
            <li>从入门到放弃08</li>
            <li>从入门到放弃09</li>
            <li>从入门到放弃10</li>
        </ul>
    </div>
</body>
<script>
    var odiv = document.querySelector(".box");
    var oul = document.querySelector(".box .con");
    var timer = null;
    oul.innerHTML = oul.innerHTML + oul.innerHTML;
    function autoPlay() {
        timer = setInterval(() => {
            odiv.scrollTop++;
            if (odiv.scrollTop >= odiv.scrollHeight / 2) {
                odiv.scrollTop = 0;
            }
        }, 20);
    }
    autoPlay();
    //鼠标移入div时,关闭计时器
    odiv.onmouseover = function () {
        clearInterval(timer);
    }
    //当鼠标移开div时,开启计时器
    odiv.onmouseout = function () {
        autoPlay();
    }
</script>

 

 案例3:单行滚动或者照片单个无缝滚动

<style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .main {
            overflow: hidden;
            margin: 0 auto;
            font-size: 0;
            /*实现照片间缝隙为0*/
            width: 600px;
            height: 400px;
        }
    </style>
</head>

<body>
    <div class="main">
        <ul>
            <li><img src="./img/1.webp" alt=""></li>
            <li><img src="./img/2.webp" alt=""></li>
            <li><img src="./img/3.webp" alt=""></li>
            <li><img src="./img/4.webp" alt=""></li>
            <li><img src="./img/5.webp" alt=""></li>
            <li><img src="./img/6.webp" alt=""></li>
            <li><img src="./img/7.webp" alt=""></li>
            <li><img src="./img/8.webp" alt=""></li>
            <li><img src="./img/9.webp" alt=""></li>
            <li><img src="./img/10.webp" alt=""></li>
        </ul>
    </div>
</body>
<script>
    var omain = document.querySelector(".main");
    var oul = document.querySelector(".main ul");
    var timer = null;
    oul.innerHTML = oul.innerHTML + oul.innerHTML;
    function autoPlay() { //封装函数
        timer = setInterval(function () {
            omain.scrollTop++;
            if (omain.scrollTop >= omain.scrollHeight / 2) { //滚动高度大于自身高度一半时,重新赋值滚动高度为0
                omain.scrollTop = 0;
            };
            if (omain.scrollTop % 400 === 0) {
                clearInterval(timer);
                tab = setTimeout(function () { //延迟多少毫秒开启计时器
                    autoPlay();
                }, 400)

            }

        }, 10);
    }
    autoPlay(); //调用函数
    //鼠标移入时关闭计时器
    omain.onmouseover = function () {
        clearInterval(timer);
        clearTimeout(tab); //清除延时
    }
    //鼠标移出时开启计时器
    omain.onmouseout = function () {
        autoPlay();
    }
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值