美文网首页
2019-02-12 day7js应用

2019-02-12 day7js应用

作者: woming | 来源:发表于2019-02-12 21:11 被阅读0次

    02属性操作

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <p id="p1">我是段落<a id="a1" href="http://www.baidu.com">百度</a></p>
            <img src="img/aaa.ico"/>
        </body>
    </html>
    
    <script type="text/javascript">
        pNode = document.getElementById('p1')
        aNode = document.getElementById('a1')
        imgNode = document.getElementsByTagName('img')[0]
        //1.节点属性的增删改查
        //1)查
        //a. 节点.属性
        //标签相关属性:
        // innerHTML  - 标签内容(包含双标签内容中的其他标签和文字)
        // innertext  - 标签中的文本内容
        // href,src,text, value, id等,根据标签属性直接获取;注意:标签中的class属性在节点中对应的是className
    //  alert(pNode.innerHTML)
    //  alert(pNode.innerText)
    //  alert(aNode.href)
        alert(imgNode.src)
        
        //样式相关属性:可以通过style来获取样式相关属性
        aNode.style.color   //获取字体颜色
        aNode.style.display  //获取display的值
        
        //b. 节点.getAttribute(属性名)
        alert(aNode.getAttribute('href'))
        alert(aNode.getAttribute('id'))
        
        //2)改、增
        //a. 节点.属性 = 新值
        imgNode.src = 'img/bottom.jpg'
        imgNode.title = 'lufei'
        pNode.style.color = '#00ff00'
        pNode.myIndex = '9'  //添加属性
        alert(pNode.myIndex)
        
        //b. 节点.setAttribute(属性名, 新值)
        //注意:inner相关的无效
        imgNode.setAttribute('src', 'img/aaa.ico')
        
        //3)删
        imgNode.removeAttribute('src')
        
    </script>
    
    

    03BOM操作

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <button onclick="window.open('01车牌号限行案例.html')">打开新窗口</button>
        </body>
    </html>
    <script type="text/javascript">
        //1.BOM - 浏览器对象模型(browser object mode)
        //js提供了一个全局的对象window,指向的是浏览器
        //js中声明的所有的全局变量其实都是添加给window的属性
        var a = 100
        console.log(a, window.a)
        
        //2.基本操作
        //a. 打开新的窗口:open()  - 会返回被打开的窗口对应的对象
        //open() - 空白窗口
        //open(url,'name','width=300,height=200') - 在新窗口打开指定网页并且设置窗口的宽度和高度
        newWindow = window.open('01车牌号限行案例.html','车牌','width=300,height=400')
        
        //b. 移动窗口
        newWindow.moveTo(100, 100)
        //c. 设置窗口的大小
    //  newWindow.resizeTo(400, 300)
    
        //d.浏览器的宽高
        //inner是内容的宽度和高度
        //outer是浏览器的宽度和高度
        console.log('==',newWindow.innerHeight,newWindow.innerWidth)
        console.log('==',newWindow.outerHeight,newWindow.outerWidth)
        
        //3.弹框
        //a. alert(提示信息) - 提示框,只有提示信息和确定按钮
        //b. confirm(提示信息) - 提示框,有确定和取消按钮;返回值是布尔值,点击确定 -> true, 点击取消 -> false
        result = confirm('是否确定?')
        console.log(result)
        //c. prompt - 提示框,有一个输入框,一个确定按钮和取消按钮;
        //返回值是字符串,点击确定返回值是输入框中的内容,点击取消的时候返回值是null
        result = prompt('提示信息', '输入框中的默认值')
        console.log(result)
    
    </script>
    

    04计时事件

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <div id="div1">5</div>
        </body>
    </html>
    <script type="text/javascript">
        //1.定时器
        //a. 开启定时器
        //setInterval(函数,时间)  - 每隔指定的时间调用一次指定的函数;返回是定时器对象
        //setTimeout(函数,时间) - 隔指定的时间之后调用一次指定的函数(函数只会调用一次);
        
        //函数 - 可以是函数名,也可以是匿名函数
        //时间 - 单位是毫秒
        //b. 停止定时
        //clearInterval(定时器对象) - 停止指定的定时器
        //clearTimeout(定时器对象) - 停止指定的定时器
        
        
        //方案一:传函数
        function timeAction(){
            console.log('aaa')
        }
        timer1 = setInterval(timeAction, 1000)
        
        //方案二:匿名函数
        timer2 = setInterval(function(){
            console.log('nnn')
        }, 1000)
        
        timer22 = setTimeout(function(){
            alert('时间到!')
        },5000)
        
        
        //练习:数字递增
        num = 5
        divNode = document.getElementById('div1')
        timer3 = setInterval(
            function(){
                num--
                divNode.innerText = num
                if(num == 0){
                    //停止定时
                    clearInterval(timer3)
                    //停止定时后要做的事
                    window.open('https://www.baidu.com')
                }
            },
            1000
        )
    
    </script>
    
    

    06事件绑定

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                #box1{
                    width: 150px;
                    height: 150px;
                    background-color: cadetblue;
                }
            </style>
        </head>
        <body>
            <button onclick="alert('按钮点击')">跳转</button>
            <button onclick="buttonAction()">按钮1</button>
            <button id="btn2">按钮2</button>
            <button id="btn3">按钮3</button>
            <div id="box1"></div>
        </body>
    </html>
    <script type="text/javascript">
        //js是事件驱动语言
        //1.事件三要素:事件源、事件、事件驱动程序
        //小明打狗,狗咬他  -- 事件源:狗    事件:打狗     事件驱动程序:狗咬他
        //小明打狗,他爸打他 --  事件源:狗     事件:打狗    事件驱动程序:他爸打他
        //点击按钮,跳转到其他页面  --  事件源:按钮   事件:点击按钮     事件驱动程序:跳转到其他页面
        //2.绑定事件
        //a.直接通过标签绑定事件  -- 直接在事件对应的属性里写js代码
        //b.直接通过标签绑定事件  -- 直接在事件对应的属性里调用函数,这个函数中的this是window
        function buttonAction(){
            console.log(this)
        }
        //c.通过节点绑定事件  --  给节点的事件属性赋函数或者匿名函数
        //函数中的this就是事件源(当前被点击的按钮)
        btnNode2 = document.getElementById('btn2')
        //给点击事件绑定函数
        btnNode2.onclick = buttonAction
        //给鼠标进入事件绑定函数
        //这里给同一个事件绑定函数,前面的会被后面的函数覆盖
        btnNode2.onmouseover = function(){
            this.style.color = 'red'
        }
        btnNode2.onmouseover = function(){
            this.style.fontSize = '20px'
        }
        //d.通过节点绑定事件
        //节点.addEventListener(事件名,事件驱动程序)
        //事件名:去掉事件名前面的on,例如onclick -> click
        //这种方式绑定事件,可以给同一个事件源的同一个事件绑定不同的驱动程序
        //this是事件源,evt是事件对象
        btnNode3 = document.getElementById('btn3')
        btnNode3.addEventListener('click', function(evt){
            console.log(this)   //这里this是谁点击指向谁
            this.style.color = 'red'
        })
        btnNode3.addEventListener('click', function(evt){
            console.log(evt)
            this.style.fontSize = '30px'
        })
        
        //3.驱动程序中的evt参数,代表事件对象
        boxNode1 = document.getElementById('box1')
        boxNode1.addEventListener('click',function(evt){
    //      console.log(evt.offsetX)
            if(evt.offsetX<=75){
                this.style.backgroundColor = 'red'
            }else{
                this.style.backgroundColor = 'blue'
            }
        })
        
        
        //补充:js中的随机数
        console.log(Math.random())   //随机数0-1(小数)
        console.log(parseInt(Math.random()*100))   //0-100
        
    </script>
    ``
    #07冒泡事件
    

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">

            #div1{
                width: 400px;
                height: 400px;
                background-color: lightblue;
                margin: 0px auto;
            }
            #div2{
                width: 200px;
                height: 200px;
                background-color: cadetblue;
                margin: 0px auto;
            }
            #div3{
                width: 100px;
                height: 100px;
                background-color: darkgoldenrod;
                margin: 0px auto;
            }
            
        </style>
    </head>
    <body>
        <div id="div1"> 
            <div id="div2">
                <div id="div3">
                    
                </div>
            </div>
        </div>
    </body>
    

    </html>
    <script type="text/javascript">
    //1.事件冒泡
    //子标签上产生的事件会传递给父标签
    //2.事件捕获:让事件不再传递给父标签
    //事件.stopPropagation()

    //获取节点
    divNode1 = document.getElementById('div1')
    divNode2 = document.getElementById('div2')
    divNode3 = document.getElementById('div3')
    //绑定事件
    divNode1.addEventListener('click', function(evt){
        alert('div1被点击')
    })
    divNode2.addEventListener('click', function(evt){
        alert('div2被点击')
        evt.stopPropagation()
    })
    divNode3.addEventListener('click', function(evt){
        alert('div3被点击')
        //让evt事件对象不传递给当前标签的父标签
        evt.stopPropagation()
    })
    

    </script>

    相关文章

      网友评论

          本文标题:2019-02-12 day7js应用

          本文链接:https://www.haomeiwen.com/subject/lthleqtx.html