js笔记(dom)

77.DOM
1.DOM:Document Object Model (文档对象模型)
2.DOM作用:
DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。
DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和css功能的一类对象的集合。
也有人称DOM是对HTML以及XML的标准编程接口。
(DOM不能操作CSS,任何不能操作CSS,这个不能改变指的是,不能改变CSS样式表,但是可以通过间接的方式改变htm行间样式去改变它)
XML:可以自定义标签,之前都是用XML但是现在已经被js中的就是json所取代
例1:
    var div = document.getElementsByTagName('div')[0];                    
//document.getElementsByTagName('div') 就可以将所有div选出来封装进一个类数组里,所有div按照类数组索引位进行排序,所以 例题中的[0]代表取出类数组中第一个div
//选出来的 div叫做dom对象,对象能做的增删改查,这个div都能做。
例2:
    var div = document.getElementsByTagName('div')[0];
    div.style.height = "100px";
    div.style.width = "100px";
    div.style.backgroundColor = "pink";
//网页上就会出现100px长宽的粉色的区域
例3:
    var div = document.getElementsByTagName('div')[0];
    div.style.height = "100px";
    div.style.width = "100px";
    div.style.backgroundColor = "pink";
    div.onclick = function (){
        this.style.backgroundColor = "red";
        this.style.height = "200px";
        this.style.width = "200px";
        this.style.borderRadius = "50%";
    }
//接着上道题,点击后就变红了而且宽高等属性也会改变,函数里的this指的就是谁调用它this就指向谁。borderRadius属性代表变为圆角。
例4:实现一直点击。两个颜色之间来回切换
    var div = document.getElementsByTagName('div')[0];
    div.style.height = "100px";
    div.style.width = "100px";
    div.style.backgroundColor = "pink";
    var count = 0;
    div.onclick = function (){
        count ++;
        if(count % 2 == 0){
            this.style.backgroundColor = "pink";
        }
        else{
            this.style.backgroundColor = "red";
        }
    }
//点一下变红,点一下变粉,再点再变红等等

例5:选项卡功能,点击哪个按钮,按钮颜色改变,及对应的div框内的内容进行改变
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>frame</title>
    <style type = text/css>
        .content{
            border : 2px solid red;
            height: 200px;
            width : 200px;
            display : none;
        }
        .active{
            background-color : pink;
        }
    </style>
</head>
<body>
<button class = "active">111</button>
<button>222</button>
<button>333</button>
<div class="content" style = "display : block">111</div>
<div class="content">222</div>
<div class="content">333</div>
<script type="text/javascript">
    var btn = document.getElementsByTagName('button');
    var div = document.getElementsByClassName('content');
    for(var i = 0 ; i < btn.length; i++){
        (function (n){                                                                      //因为在这里会产生闭包现象所以利用立即执行函数解决。
            btn[n].onclick = function (){
                for(var j = 0 ; j < btn.length;j ++){
                    btn[j].className = "";
                    div[j].style.display = "none";
                }
                this.className = "active"
                div[n].style.display = "block";
            }
        }(i))
    }
</script>
</body>
</html>


例6:小方块移动
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>frame</title>
</head>
<body>
<script type="text/javascript">
    var div = document.createElement('div');   /*利用js创建div标签*/
    document.body.appendChild(div);          /*向body里面插入一个div标签*/
    div.style.width = "100px";
    div.style.height = "100px";
    div.style.backgroundColor = "pink";
    div.style.position = "absolute";
    div.style.left = "0px";
    div.style.top = "0px";
    var speed = 1;
    var timer = setInterval(function (){                      /*每隔后面那个数毫秒就执行一遍函数*/
        speed += speed/20;
        div.style.left = parseInt(div.style.left) + speed + "px";
        div.style.top = parseInt(div.style.top) + speed + "px";
        if(parseInt(div.style.top)> 200 &&parseInt(div.style.left)> 200){
            clearInterval(timer);
        }
    },10)
</script>
</body>
</html>

例7:用键盘上的上下左右键控制小方块的移动方向
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>frame</title>
</head>
<body>
<script type="text/javascript">
    var div = document.createElement('div');   /*利用js创建div标签*/
    document.body.appendChild(div);          /*向body里面插入一个div标签*/
    div.style.width = "100px";
    div.style.height = "100px";
    div.style.backgroundColor = "pink";
    div.style.position = "absolute";
    div.style.left = "0px";
    div.style.top = "0px";
    document.onkeydown= function (e){   /*当点击时,系统会帮咱们调用这个函数,调用的时候会传进一个事件对象进来
                                         这个事件对象会包裹着所有的事件发生的时候产生的所有信息,以供咱们使用
                                         就像这个事件发生的时候鼠标在哪,或者键盘点了什么东西都会包含
                                         console.log(e);   键盘按上是38,下是40,左是37 */
        switch(e.which){
            case 38:
                div.style.top = parseInt(div.style.top) - 5 + "px";   /*电脑的坐标系是反着的 y轴朝下为正*/
                break;
            case 40:
                div.style.top = parseInt(div.style.top) + 5 + "px";
                break;
            case 37:
                div.style.left = parseInt(div.style.left) - 5 + "px";
                break;
            case 39:
                div.style.left = parseInt(div.style.left) + 5 + "px";
                break;
        }
    }
</script>

猜你喜欢

转载自blog.csdn.net/LFY836126/article/details/81915722