Salve a tutti,
Sto facendo pratica con JavaScript e sto creando una galleria di immagini con effetto lightbox. Ho usato uno pseudo elemento after per applicare alcune animazioni ad ogni contenitore delle immagini. Prima di fare ciò, ho creato una finestra con javascript che viene visualizzata quando si clicca su ciascuna immagine. Tutto funziona, l'unico problema è che da quando ho usato lo pseudo elemento after, naturalmente, non posso cliccare sulle immagini e quindi la finestra non appare più; per cui la mia domanda è: Usando JavaScript è possbile richiamare gli pseudo elementi after o before? E più in generale, come posso risolvere il mio problema e consentire alla finestra di apparire? Grazie in anticipo per l'aiuto. Vi posto qui i codici HTML, CSS e Javascript
saluti
Alessandro
Sto facendo pratica con JavaScript e sto creando una galleria di immagini con effetto lightbox. Ho usato uno pseudo elemento after per applicare alcune animazioni ad ogni contenitore delle immagini. Prima di fare ciò, ho creato una finestra con javascript che viene visualizzata quando si clicca su ciascuna immagine. Tutto funziona, l'unico problema è che da quando ho usato lo pseudo elemento after, naturalmente, non posso cliccare sulle immagini e quindi la finestra non appare più; per cui la mia domanda è: Usando JavaScript è possbile richiamare gli pseudo elementi after o before? E più in generale, come posso risolvere il mio problema e consentire alla finestra di apparire? Grazie in anticipo per l'aiuto. Vi posto qui i codici HTML, CSS e Javascript
HTML:
<ul class="contenitore_delle_descrizioni">
<li class="descrizioni"><img src="immagini/forum/descrizione-1.png" alt="01" class="immagine_della_descrizione"></li>
<li class="descrizioni"><img src="immagini/forum/descrizione-2.png" alt="02" class="immagine_della_descrizione"></li>
<li class="descrizioni"><img src="immagini/forum/descrizione-3.png" alt="03" class="immagine_della_descrizione"></li>
<li class="descrizioni"><img src="immagini/forum/descrizione-4.png" alt="04" class="immagine_della_descrizione"></li>
<li class="descrizioni"><img src="immagini/forum/descrizione-5.png" alt="05" class="immagine_della_descrizione"></li>
<li class="descrizioni"><img src="immagini/forum/descrizione-6.png" alt="06" class="immagine_della_descrizione"></li>
</ul>
Codice:
* {
box-sizing: border-box;
}
img {
max-width: 100%;
}
.contenitore_del_titolo {
position: relative;
top: 5px;
width: 100%;
}
.contenitore_del_titolo p {
color: #fedd32;
font-size: 25px;
font-weight: bolder;
margin: auto;
text-align: center;
}
.contenitore_delle_descrizioni {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
justify-content: center;
max-width: 1000px;
margin: auto;
}
.contenitore_delle_descrizioni .descrizioni {
cursor: pointer;
margin: 1em;
overflow: hidden;
position: relative;
width: calc(100% - 2em);
}
.contenitore_delle_descrizioni .descrizioni .immagine_della_descrizione {
display: block;
-webkit-transition: all 0.4s;
-moz-transition: all 0.4s;
-ms-transition: all 0.4s;
-o-transition: all 0.4s;
transition: all 0.4s;
width: 100%;
}
.contenitore_delle_descrizioni .descrizioni:hover .immagine_della_descrizione {
-webkit-transform: scale(1.2) rotate(-5deg);
-moz-transform: scale(1.2) rotate(-5deg);
-ms-transform: scale(1.2) rotate(-5deg);
-o-transform: scale(1.2) rotate(-5deg);
transform: scale(1.2) rotate(-5deg);
}
.contenitore_delle_descrizioni .descrizioni:after {
background: url(../immagini/forum/icona_della_galleria.png) no-repeat rgba(0,0,0,0.8);
background-position: center center;
-webkit-background-size: 3em;
-moz-background-size: 3em;
-ms-background-size: 3em;
-o-background-size: 3em;
background-size: 3em;
content: '';
height: 100%;
left: 0;
opacity: 0;
position: absolute;
top: 0;
-webkit-transform: scale(0.1);
-moz-transform: scale(0.1);
-ms-transform: scale(0.1);
-o-transform: scale(0.1);
transform: scale(0.1);
-webkit-transition: all 0.4s;
-moz-transition: all 0.4s;
-ms-transition: all 0.4s;
-o-transition: all 0.4s;
transition: all 0.4s;
width: 100%;
}
.contenitore_delle_descrizioni .descrizioni:hover::after {
opacity: 1;
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
.finestra {
-webkit-align-items: center;
-moz-align-items: center;
-ms-align-items: center;
-o-align-items: center;
align-items: center;
background: rgba(0,0,0,0.7);
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
height: 100vh;
justify-content: center;
left: 0;
position: fixed;
text-align: center;
top: 0;
width: 100%;
}
.finestra .immagine_della_finestra {
max-width: 700px;
width: 70%;
}
.finestra .tasto_della_finestra {
background: rgba(0,0,0,0.2);
border-radius: 50%;
color: #ffffff;
cursor: pointer;
font-family: monospace;
font-size: 25px;
font-weight: bold;
height: 50px;
line-height: 50px;
position: absolute;
right: 50px;
text-align: center;
top: 50px;
width: 50px;
}
@media screen and (min-width:480px) {
.contenitore_delle_descrizioni .descrizioni {
width: calc(50% - 2em);
}
}
@media screen and (min-width:768px) {
.contenitore_del_titolo p {
font-size: 30px;
}
.contenitore_delle_descrizioni .descrizioni {
width: calc(33.33333% - 2em);
}
}
@media screen and (min-width:1024px) {
.contenitore_del_titolo p {
font-size: 35px;
}
.contenitore_delle_descrizioni .descrizioni {
width: calc(33.33333% - 2em);
}
}
Codice:
$('.immagine_della_descrizione').click(function(e) {
'use strict';
var immagine = e.target.src;
var finestra = '<div class="finestra" id="finestra"><img src="' + immagine + '" class="immagine_della_finestra"><div class="tasto_della_finestra" id="tasto_della_finestra">X</div></div>';
$('body').append(finestra);
$('#tasto_della_finestra').click(function () {
$('#finestra').remove();
})
});
$(document).keyup(function(e) {
if(e.which==27) {
$('#finestra').remove();
}
})
saluti
Alessandro