HTML、CSS和JavaScript,实现换肤效果的原理-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

这篇涉及到HTML DOM的节点类型、节点层级关系、DOM对象的继承关系、操作DOM节点和HTML元素

还用到HTML5的本地存储技术。

换肤效果的原理是在选择某种皮肤样式之后通过JavaScript脚本来加载选中的样式再通过localStorage存储。

先来回忆一下HTML DOM的相关知识。

DOM

DOM模型就是通过逻辑树来表示文档树的每一个分支的终点都是一个节点Node每一个节点都含有一个对象。

DOM的方法可以用来改变文档的结构、样式和内容还可以关联事件处理器在某一个事件触发后所关联的事件处理器也会执行。

HTML文档中所有的内容都是节点整个文档就是文档节点【也就是我们常说的document】

在整个HTML文档中根据不同功能来划分可以分为元素节点、文本节点、属性节点、注释节点等等。常见的节点类型如下图所示

在这里插入图片描述

操作节点

在操作节点之前我们先获取节点然后追加、新增、删除、替换、复制、合并节点等等交互。

在文档中我们是通过节点来操作文档中的元素得到的返回值是节点集合。

我们常用来获取节点的属性如下图
在这里插入图片描述
常用来追加和新增节点的方法如下

Node.appendChild(childNode);
Node.insertBefore(newNode,referenceNode)

删除和替换节点的方法

Node.removeChild()
Node.replaceChild()

复制、合并节点

Node.cloneNode(); // 参数为true/false是否复制节点所有内容
Node.normalize(); // 合并相邻的文本节点并且清除空的文本节点

节点引用和包含关系的判断

Node.isSameNode(other); // 比较两个节点
Node.hasChildNodes(); // 是否包含子节点

document和element

document是描述了任何类型文档的通用属性和方法它的构造函数是Document()

所有Document对象下的对象都继承于ELement。ELement描述所有相同种的元素普遍具有的方法和属性。

document对象中获取元素的常用属性:

  1. document.all返回整个 document 文档集合
  2. document.anchors返回文档中所有锚点的元素是一个 List
  3. document.body返回当前文档的 body 或者 frameset 节点
  4. document.documentElement返回当前文档的直接节点
  5. document.forms返回当前文档的所有表单元素
  6. document.head返回文档的 head 元素
  7. document.images返回文档的所有图片元素
  8. document.links返回所有超链接的列表
  9. document.scripts返回所有的 script 元素
  10. document.styleSheetSets返回文档中可用样式表的列表
  11. document.defaultView返回 window 对象的应用
  12. document.title获取当前文档的标题

document对象中获取元素的常用方法:

  1. document.getElementsByClassName(names)返回指定所有类名的元素
  2. document.getElementsByTagName(name)
  3. document.getElementByld(id)
  4. document.querySelector(selectors)
  5. document.query SelectorAll(selectors)
  6. document.getElementsByName(name)

document对象中创建元素的常用方法

  1. document.createAttribute(name)
  2. document.createComment(data)
  3. document.createDocumentFragment)
  4. document.createElement(tagName[,options])
  5. document.create TextNode(data)

document对象中向文档中写入内容的方法

  1. document. write(markup)
  2. document.writeln(line)

Element对象中获取元素的常用方法

  1. Element.getElementsByClassName(names)
  2. Element.getElementsByTagName(name)
  3. Element.querySelector(selectors)
  4. Element.querySelectorAll(selectors)

Element对象的属性及其操作元素属性的方法

  1. Element.classList
  2. Element.className
  3. Element.id
  4. Element.innerHTM
  5. Element.outerHTML
  6. Element.tagName
  7. Element.children
  8. Element.getAttribute (attr)
  9. Element.getAttributeNode(attr)
  10. Element.removeAttribute(attr)
  11. Element.removeAttributeNode(attrNode)
  12. Element.setAttribute(name,value)
  13. Element.setAttributeNode(attr)
  14. Element.toggleAttribute(name [,force])

Element对象中插入节点的常用方法

  1. Element.insertAdjacentElement(pos,ele)
  2. Element.insertAdjacentHTML(pos,text)
  3. Element.insertAdjacentText(pos,ele)
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“HTML、CSS和JavaScript,实现换肤效果的原理-CSDN博客” 的相关文章