场景
2023年08月11日
一、自定义元素
-
在
Custom Element
构造函数中,添加let shadow = this.attachShadow({mode: 'open'});
代码, 即可将一个Shadow DOM
附加到Custom Element
上-
let shadow = this.attachShadow({mode: 'open'});
: 它接受一个配置对象作为参数,该对象有一个mode
属性,值可以是open
或者closed
-
mode: 'open'
: 表示可以通过页面内的JavaScript
方法来获取Shadow DOM
-
mode: 'closed'
: 表示不可以从外部获取Shadow DOM
了
-
-
-
将
Shadow DOM
附加到一个元素之后,就可以使用DOM APIs
对它进行操作,就和处理常规DOM
一样 -
最后,使用
customElements.define
定义新的Custom Elements
实现:
class Bolawen extends HTMLElement {
constructor() {
super();
const shadow = this.attachShadow({ mode: "open" });
const container = document.createElement("div");
container.setAttribute("class", "bolawen-container");
const content = document.createElement("div");
content.setAttribute("class", "bolawen-content");
content.innerHTML = this.getAttribute("content");
const style = document.createElement("style");
style.textContent = `
.bolawen-container{
width:100px;
height:100px;
background-color: red;
display:flex;
justify-content:center;
align-items:center;
}
.bolawen-content{
width:50px;
height:50px;
background:black;
text-align:center;
font-size:12px;
color:3px;
}
`;
shadow.appendChild(style);
shadow.appendChild(container);
container.appendChild(content);
}
}
customElements.define("bolawen-div", Bolawen);
二、日期选择框
三、音频播放标签
语法
<audio src="file/123.mp3" controls="controls">