<!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>
</head>
<body>
<xzy-tab data = '{"aaa" : "我是aaa的内容","bbb" : "我是bbb的内容","ccc" : "我是ccc的内容"}'></xzy-tab>
<script>
class XzyTab extends HTMLElement{
constructor(){
super();
const shadom = this.attachShadow ({
mode : "open"
})
var data = JSON.parse(this.getAttribute("data"));
var oWrap = document.createElement("div");
var oCtrl = document.createElement("div");
var oCon = document.createElement("div");
shadom.appendChild(oWrap);
oWrap.appendChild(oCtrl);
oWrap.appendChild(oCon);
var arr = Object.keys(data);
console.log(arr);
for(var i=0;i<arr.length;i++){
oCtrl.innerHTML += `<button>${arr[i]}</button>`
}
oCon.innerHTML = data["aaa"];
var aBtn = oCtrl.getElementsByTagName("button");
for(var i=0;i<aBtn.length;i++){
aBtn[i].onclick = function (){
oCon.innerHTML = data[this.innerHTML];
}
}
var oStyle = document.createElement("style");
oStyle.innerHTML = `
.wrap{
width: 500px;
height: 500px;
border: 1px solid black;
}
.wrap .ctrl{
width: 500px;
height: 100px;
}
.wrap button{
width: 160px;
height: 100px;
}
.wrap .content{
width: 500px;
height: 400px;
}
`
}
}
customElements.define('xzy-tab',XzyTab);
</script>
</body>
</html>
自定义组件之选项卡效果
最新推荐文章于 2024-07-05 15:23:24 发布