Я собираюсь изучать ванильные js веб-компоненты. Я мог бы успешно визуализировать некоторые элементы, сгенерированные веб-компонентами, теперь я хотел бы придать ему некоторый дизайн и поместить его в боковую панель. Однако я не уверен, является ли это веб-компонентами или просто проблемой дизайна, после добавления боковой панели элементы больше не будут отображаться.
Может быть, вы могли бы взглянуть на мой код и дать мне несколько советов, где я нахожусь вызывая проблему?
@ Редактировать: Как предложено в комментарии, я поместил его в скрипку, так что вы можете попробовать. Теперь я еще меньше понимаю поведение, тогда как в скрипке оно выглядит так, как должно, а на моей локальной машине нет.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DiceArea</title>
</head>
<body>
<script type="module" src="./index.js"></script>
</body>
</html>
window.addEventListener('load', () => {
getUsers();
});
function getUsers() {
const users = ["player1", "player2", "player3", "player4", "player5"];
const nav = document.createElement("player-nav");
nav.setAttribute("class", "sidenav")
document.body.appendChild(nav);
users.forEach(user => {
user = document.createElement('table-user');
nav.appendChild(user);
user.addEventListener("click", () => {
alert("lol")
})
})
}
class User extends HTMLElement {
constructor() {
super();
this.shadow = this.attachShadow({mode: 'open'});
}
connectedCallback() {
this.user();
}
user() {
this.shadow.innerHTML = `
<style>
.sidenav {
height: 100px;
width: 100px;
position: fixed;
background-color: #0000;
overflow-x: hidden;
padding-top: 20px;
}
.avatar {
width: 90px;
height: 90px;
border-radius: 10%;
}
</style>
<img src="html/aavatar.png" alt="Avatar" class="avatar">`
}
}
customElements.define("table-user", User);
https://jsfiddle.net/9bt8Lk0v/8/
И вот как это выглядит на моей локальной машине: ![enter image description here](https://i.stack.imgur.com/yIwBE.png)