菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

BOM对象、JavaScript事件

原创
05/13 14:22
阅读数 166

Bom对象:

● window对象:浏览器窗口对象
● Navigator:浏览器对象
● Screen:浏览器所处客户端的显示屏屏幕对象
● History:浏览器当前窗口的访问历史对象记录
● Location:浏览器当前窗口的地址栏对象

每个对象都有对应的属性和方法,通过这些属性和方法我们可以获取浏览器的信息。在这五个部分中,Window对象尤为重要,根据图片的区域划分,可以很清楚的看出,Window对象其中就已经包含了History.Location对象,还有一个非常重要的Document对象,但由于其重要性太高,所以前面课程我们将其单独区分出来,称为DOM对象。

而另外两个:Navigator、Screen对象,使用到的次数较少,下面我们对于BOM中的内容主要就涉及Window、History. Location三个对象。

window对象:不同于一般的对象,BOM中的Window对象不需要创建就可以直接使用,使用其中的方法直接调用即可,类似于我们已知的静态方法:

window.方法名()

● Open/close方法
● open的格式
● window.open([url,][name,][features,][replace])
● url:要打开的网页路径
● Name:窗口名称(通常使用target属性值)
● Features:窗口特征,属性列表
● Replace:是否替换浏览历史条目
● Close方法:window.close();不同浏览器支持度不同,但是都支持 关闭由js打开的浏览器窗口

一、添加

    <body>
        <input type="text" name="" id="content">
        <input type="button" name="" id="add" value="添加">
        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
        </ul>
        <script>
            var add=document.getElementById("add")
            add.onclick=function(){
                if (test()) {
                    if (confirm("你确定要添加吗")==true) {
                    // 获取节点
                    var li=document.createElement("li")
                    //获取输入框的内容
                    var content = document.getElementById("content")
                    li.innerHTML=content.value
                    // 获取ul
                    var ul = document.getElementById("list")
                    //将li添加到ul中
                    ul.appendChild(li)
                    alert("添加成功")
                    } else {
                        alert("不添加")
                    }
                }else{
                    alert("格式不正确")
                }
                // 用来验证文本框输入的值的格式是不是只包含数字和字母
                function test(){
                    // 使用正则表达式:只能是数字和字母,并且不能为空
                    var reg=/\b[a-zA-Z0-9]{1,}\b/
                    var content=document.querySelector("#content")
                    // test()返回一个布尔值:当满足正则表达式时,返回true,反之则返回false
                    if(reg.test(content.value)){
                        return true
                    }else{
                        return false
                    }
                }           
            }
        </script>
    </body>

图片.png

二、计时器轮播图

在此文档中,我使用了少量的javascript代码,编写了一个自动轮播,自动轮播最主要的还是通过计时器来完成自动轮播哦,下面来看HTML代码吧!

定时器
● setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
● setTimeout() :在指定的毫秒数后调用函数或计算表达式。

    <style>
            #div0{
                width: 500px;
                height: 300px;
                margin: 0 auto;
                text-align: center;
                position: relative;
            }
            #div0 img{
                width: 500px;
                height: 300px;
            }
            ul{
                display: flex;
                justify-content: space-between;
                width: 400px;
                height: 30px;
                position: absolute;
                bottom: 0;
                left: 10px;
                list-style: none;
            }
            ul li{
                width: 20px;
                height: 20px;
                border-radius: 50%;
                background-color: green;
            }
            .active{
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id="div0">
            <img src="img/bg1.jpg" alt="">
            <ul>
                <li class="active"></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>
        <script>
            var index=1
            function changePic(){
                var arr=["bg1.jpg","bg2.jpg","bg3.jpg","bg4.jpg","bg5.jpg","bg6.jpg"]
                //如何换图片
                // 如何获取图片img
                var img=document.querySelector("#div0 img")
                // 更改img的src来实现图片切换
                img.src = "img/" + arr[index]
                // 获取所有的li标签
                var list=document.querySelectorAll("ul li")
                //将所有li上面的active进行清除
                for(var i=0;i<list.length;i++){
                    list[i].classList.remove("active")
                }
                list[index].classList.add("active")
                index++
                if (index>5) {
                    index=0
                }
                // console.log(index)
                }
                setInterval(changePic,1000);
        </script>
    </body>

图片.png

三、跳转

Location对象

Location 对象包含有关当前 URL 的信息。
Location 对象是 window 对象的一部分,可通过 window.location.xxx 格式的相关属性对其进行访问。

Location 对象属性

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

Location 对象方法

方法 说明
assign() 载入一个新的文档
reload() 重新载入当前文档
replace() 用新的文档替换当前文档
    <body>
        <input type="button" id="assign" value="assign">
        <input type="button" id="reload" value="reload">
        <input type="button" id="replace" value="replace">
        <input type="button" id="href" value="href">
        <script>
            assign.onclick=function(){
                // assign():可以打开新的页面,并且可以返回,可以产生历史记录
                location.assign("https://www.baidu.com")
            }
     
            reload.onclick=function(){
                // reload():页面刷新
                location.reload()
            }
     
            replace.onclick=function(){
                // reload():用新文档替换当前的文档,可以实现打开新的页面的功能,但不能返回,故没有产生历史记录
                location.replace("https://www.baidu.com")
            }
            href.onclick=function(){
                // location.href="https://www.baidu.com"
                console.log(location.host)
                console.log(location.hostname)
            }
        </script>
    </body>

History 对象

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

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

History 对象属性

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

History 对象方法

方法 说明
back() 加载 history 列表中的前一个 URL
forward() 加载 history 列表中的下一个 URL
go() 加载 history 列表中的某个具体页面

1、

    <body>
        1.html<input type="button" id="btn" value="跳转到2.html">
        <script>
            btn.onclick=function(){
                location.href="demo3-2.html"
            }
        </script>
    </body>

2、

    <body>
        2.html
        <input type="button" value="后退" id="btn">
        <input type="button" value="跳转到demo3-3.html" id="btn2">
        <input type="button" value="forward" id="btn3">
        <input type="button" value="go" id="btn4">
        <script>
            btn.onclick=function(){
                //后退到历史记录列表上的url
                history.back()
            }
            btn2.onclick=function(){
                //跳转到demo3-2.html
                location.href="demo3-3.html"
            }
            btn3.onclick=function(){
                // 前进到历史记录列表的下一个url
                history.forward()
            }
            btn4.onclick=function(){
                // 跳转到第()个页面上
                history.go(1)
            }
        </script>
    </body>

3、

    <body>
        3.html
        <input type="button" value="后退" id="btn">
        <input type="button" value="跳转到demo3-1.html" id="btn2">
        <script>
            btn.onclick=function(){
                // 后退
                history.back()
            }
            btn2.onclick=function(){
                // 跳转到第()个页面上         -2返回前两个页面
                history.go(-2)
            }
        </script>
    </body>

发表评论

0/200
0 点赞
0 评论
收藏