Proponuje użyć (jak już wspomniał @pablop76) Event Delegation i
diva który poprzez kliknięcie wysuwa się na ekran
zapisać w css np. tak
div-element {
position: absolute;
top: 3em;
transform: translatex(-120%);
background-color: black;
border-radius: 2em;
height: 70%;
width: 50%;
transition: transform 0.5s ease;
}
i za pomocą js-a dodawać klasę dla "wysuwania" np.
.show {
transform: translatex(0);
}
i dla "schowania" usuwać powyższą klasę.
Przykład: on-line
żeby ten div nie był wyłączany tylko przez kliknięcie "x" ale również przez kliknicie na nie ważne jaką cześć tła
Przykład: on-line (ten sam co powyżej, zmieniony nieco kod js)