zoukankan      html  css  js  c++  java
  • JavaScript-DOM

    DOM事件操作
    一.JavaScript的组成
    JavaScript基础分为三个部分:
    ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。
    DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。
    BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。
    二.事件(JavaScript是一门以事件为核心的语言)
    事件的三要素:事件源、事件、事件驱动程序

    总结如下:
    事件源:引发后续事件的html标签
    事件:js已经定义好了
    事件驱动程序:对样式和html的操作。也就是DOM

    代码书写步骤如下:

    (1)获取事件源:document.getElementById(“box”);
    (2)绑定事件: 事件源box.事件onclick = function(){ 事件驱动程序 };
    (3)书写事件驱动程序:关于DOM的操作
    代码举例
    <body>
    <div id="box"></div>
    <script type="text/javascript">
    //1.获取事件源
    var odiv=document.getElementById('box');
    //2.绑定事件
    odiv.onclick=function(){
    //3.书写事件的驱动程序
    alert('广告')
    }
    </script>
    </body>
      常见事件

      onload事件:
      当页面加载(文本和图片)完毕的时候,触发onload事件,js的加载是和html同步加载的。因此,如果使用元素在定义元素之前,容易报错
      我们可以把使用元素的代码放在onload里,就能保证这段代码是最后执行
        获取事件源的方式(DOM节点的获取)

    var div1 = document.getElementById("box1"); //方式一:通过id获取单个标签
    var arr1 = document.getElementsByTagName("div1"); //方式二:通过 标签名 获得 标签数组,所以有s
    var arr2 = document.getElementsByClassName("hehe"); //方式三:通过 类名 获得 标签数组,所以有s

    绑定事件的方式
    方式一:
    <body>
    <div id="box"></div>
    <script type="text/javascript">
    var odiv=document.getElementById('box');
    // 直接绑定匿名函数
    odiv.onclick=function(){
    odiv.style.height='200px';
    odiv.style.width='200px';
    odiv.style.backgroundColor='green';
    }
    </script>
    方式二:
    <body>
    <div id="box"></div>
    <script type="text/javascript">
    var odiv=document.getElementById('box');
    //先绑定函数
    odiv.onclick=fn;//绑定时用的是fn,而不是fn(),因为fn是整个函数,fn()是这个函数的返回值
    //再单独定义函数
    function fn(){
    odiv.style.height='200px';
    odiv.style.width='200px';
    odiv.style.backgroundColor='green';
    }
    </script>
    </body>
    方式三:
    <body>
    <!--事件源直接就是这个div 绑定的事件就是点击-->
    <div id="box" onclick="fn()"></div>
    <script type="text/javascript">
    function fn(){
    //默认的是用id进行绑定的
    box.style.height='200px';
    box.style.width='200px';
    box.style.backgroundColor='green';
    }
    </script>
    </body>
    事件驱动程序
    <body>
    <div id="box" onclick="fn()"></div>
    <script type="text/javascript">
    function fn(){
    box.style.height='200px';//在js里写属性值时要用引号
    box.style.width='200px';
    box.style.backgroundColor='green';//写属性名时要用驼峰体而不是引号
    }
    </script>
    </body>
        实例:当鼠标悬停在img上时,更换为另外一张图片;鼠标离开时,还原为本来的图片
    方式一:
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <img id="s1" src="./手机1.jpg" >
    <script>
    var os1=document.getElementById('s1');
    os1.onmouseover=function(){
    os1.src='./手机2.jpg';
    }
    os1.onmouseout=function(){
    os1.src='./手机1.jpg';
    }
    </script>
    </body>
    方式二:
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <img id="im" onmouseover='fn()' onmouseout="vn()" src="./手机1.jpg" alt="aaa">
    <script>
    function fn(){
    im.src='./手机2.jpg';
    }
    function vn(){
    im.src='./手机1.jpg';
    }
    </script>
    </body>
    实例:盒子的显示隐藏
    <body>
    <button id="btn">隐藏</button>
    <div id="box"></div>
    <script>
    var show=true;
    var odiv=document.getElementById('box');
    var obtn=document.getElementById('btn');
    obtn.onclick=function() {
    if (show) {
    odiv.style.display = 'none';
    obtn.innerText = '显示';
    show=false;
    } else {
    odiv.style.display = 'block';
    obtn.innerText = '隐藏';
    show=true;
    }
    }
    </script>
    </body>
    三.DOM介绍
    什么是DOM
    DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。
    目的其实就是为了能让js操作html元素而制定的一个规范。
    DOM就是由节点组成的。
    解析过程
    HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。
    然后操作的时候修改的是该元素的属性。
    DOM树(一切都是节点)




























  • 相关阅读:
    ansible用普通用户执行root权限的命令 + script模块
    screen 实用操作
    Kibana did not load properly
    1500元让我写一个api接口!没问题
    python实现四种出行路线规划(公交、步行、驾车、骑行)
    35行代码下载任意网页的图片
    Comparison of long-read sequencing technologies in the hybrid assembly of complex bacterial genomes
    A single-molecule long-read survey of the human transcriptome
    Long-read sequencing and de novo assembly of a Chinese genome 一个中国人基因组的长读测序和重新组装
    Combination of short-read, long-read, and optical mapping assemblies reveals large-scale tandem repeat arrays with population genetic implications
  • 原文地址:https://www.cnblogs.com/shanghongyun/p/9707356.html
Copyright © 2011-2022 走看看