10、DOM基础(元素节点、属性节点、文本节点、轮播图、改变颜色、选中取消)

简介: 10、DOM基础(元素节点、属性节点、文本节点、轮播图、改变颜色、选中取消)

1、什么是DOM


  • 1、DOM一般指文档对象模型。文档对象模型(Document Object Model,简称DOM),DOM通过document对象,为开发者提供大量的接口(api),来获取节点,操作DOM树


节点类型 分类
元素节点 获取元素节点:querySelector()
属性节点 element.srcelement.id
文本节点 innerHTML
网页效果 操作元素节点、属性节点、文本节点、以及修改元素的样式


获取节点方法
getElementById() 通过id获取节点
getElementsByClassName() 通过类获取节点集合
querySelector() 通过选择器获取节点
querySelectorAll() 通过选择器获取节点集合


  <script>
    // 1、通过getElementById()方法,返回一个dom节点
    var container = document.getElementById('container');
    console.log(container.innerHTML);   // 通过innerHTML获取文本节点的内容,输出结果为:Hello world!
    container.innerHTML = 'Hello jasmine!';   // 也可以修改文本节点的内容
    console.log(container.innerHTML);   // 输出结果为:Hello jasmine!
    // 2、通过getElementsByClassName()方法,返回一个dom集合
    var btn = document.getElementsByClassName('btn');
    // 想要获取内容需要遍历
    for (let i = 0; i < btn.length; i++) {
      console.log(btn[i].innerHTML);
    }
    // 3、通过querySelector()方法,返回一个dom节点,推荐使用选择器方法
    var container = document.querySelector('#container');
    console.log(container.innerHTML);
    container.innerHTML = 'Hello jasmine_qiqi!';
    console.log(container.innerHTML);
    // 4、通过querySelectorAll()方法,返回一个dom集合,推荐使用选择器方法
    var btn = document.querySelectorAll('.btn');
    for (let i = 0; i < btn.length; i++) {
      console.log(btn[i].innerHTML);
    }
  </script>

2、事件类型(轮播图、改变颜色、选中取消)



8c3d0b9067a24bf79d0f7428465be52c.png


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body {
      display: flex;
      justify-content: space-around;
      border: 1px solid black;
      margin: 0px;
      padding: 0px;
    }
    /* 案例一 */
    .box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
    }
    /* 案例二 */
    .box1 {
      width: 200px;
      height: 100px;
      display: flex;
      justify-items: center;
      align-items: flex-end;
      position: relative;
    }
    .box1_button {
      position: absolute;
      bottom: 0px;
      left: 50%;
      transform: translateX(-50%);
    }
    .box1 img {
      max-width: auto;
      max-height: auto;
      width: 100%;
      height: 100%;
    }
    /* 案例三 */
    .case3 p {
      cursor: pointer;
    }
    .active {
      background-color: antiquewhite;
      cursor: pointer;
    }
    /* 案例四 */
    .case4 {
      width: 150px;
      height: 200px;
      overflow: hidden;
    }
    .case4 .container {
      width: 450px;
      height: 80px;
      display: flex;
      transition: transform 0.3s;
    }
    /* .case4 .container:hover {
      transform: translate(-150px);
    } */
    .case4 .container img {
      width: 150px;
      height: 80px;
    }
    .case4 .btnList {
      display: flex;
      align-content: center;
      justify-content: center;
    }
  </style>
</head>
<body>
  <!-- 案例一 -->
  <div class="case1">
    <h1>案例一</h1>
    <div class="box">
      <button>按钮</button>
    </div>
  </div>
  <!-- 案例二 -->
  <div class="case2">
    <h1>案例二</h1>
    <div class="box1">
      <img src="../image//1.jpg" alt="">
      <div class="box1_button">
        <button class="btn">1</button><button class="btn">2</button><button class="btn">3</button>
      </div>
    </div>
  </div>
  <!-- 案例三 -->
  <div class="case3">
    <h1>案例三</h1>
    <p>Hello world!</p>
    <p>Hello world!</p>
    <p>Hello world!</p>
    <p>Hello world!</p>
    <p>Hello world!</p>
  </div>
  <!-- 案例四 -->
  <div class="case4">
    <h1>案例四</h1>
    <div class="container">
      <img src="../image//1.jpg" alt="">
      <img src="../image//2.jpg" alt="">
      <img src="../image//3.jpg" alt="">
    </div>
    <div class="btnList">
      <button class="button">1</button>
      <button class="button">2</button>
      <button class="button">3</button>
    </div>
  </div>
  <script>
    // 设置样式
    var btn = document.querySelector('button');
    // 1、通过backgroundColor属性,事件监听函数(点击),颜色变黄色
    btn.onclick = function () {
      box.style.backgroundColor = 'yellow';
    }
    // 2、鼠标移入,颜色变黑色
    var box = document.querySelector('.box');
    box.onmouseenter = function () {
      this.style.backgroundColor = 'black';
    }
    // 3、鼠标移出,恢复颜色
    box.onmouseleave = function () {
      this.style.backgroundColor = 'antiquewhite';
    }
    // 4、通过src属性,按钮切换图片
    var img = document.querySelector('img');
    var imageSrcList = ['../image//1.jpg', '../image//2.jpg', '../image//3.jpg']
    var btn = document.querySelectorAll('.btn');
    for (let i = 0; i < btn.length; i++) {
      btn[i].onclick = function () {
        img.src = imageSrcList[i];
      }
    }
    // 5、通过className属性,设置选中样式
    var pList = document.querySelectorAll('p');
    for (let i in pList) {
      pList[i].onclick = function () {
        if (this.className === 'active') {
          this.className = '';
        } else {
          this.className = 'active';
        }
      }
    }
    // 6、通过transform属性,点击按钮切换图片(过渡效果)
    var btnList = document.querySelectorAll('.button');
    var container = document.querySelector('.container');
    for (let i in btnList) {
      btnList[i].onclick = function () {
        console.log(btnList[i].innerHTML);
        container.style.transform = `translate(${-150 * i}px)`;
      }
    }
  </script>
</body>
</html>


相关文章
|
16天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
16天前
|
JavaScript 前端开发
|
28天前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
28天前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
1月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
50 4
|
1月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
16天前
|
JavaScript 前端开发 API
|
1月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树