[Javascript] richiamare lo pseudo elemento after

alessandro83125

Nuovo Utente
14 Ott 2016
4
0
1
38
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
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
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, sembra che non sia possibile associare una funzione ad un pseudo elemento perchè non fa parte del documento.
Puoi però associare il click all'elemento padre, nel tuo caso il tag <li>
Codice:
$('.descrizioni').click(function () {
                    var immagine = $(this).children("img").attr("src");
 
Discussioni simili
Autore Titolo Forum Risposte Data
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
T [Javascript] Richiamare un file.js (iframe) in html Javascript 1
B [Javascript] Richiamare un attributo DATA Javascript 0
B richiamare variabile javascript su pagina php Javascript 4
gandalf1959 Richiamare un javascript da php. Non funziona? PHP 2
A richiamare funzione javascript dopo login in popup. Javascript 0
L scrivere e richiamare funzioni javascript su file php PHP 2
G richiamare file php da funzione javascript PHP 4
A Richiamare una pagina php in una funzione javascript Ajax 2
A Richiamare una funzione Javascript Javascript 1
L Cosa fare per richiamare un'applicazione con javascript Javascript 1
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 0
F Creare elementi html con javascript Javascript 2
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 19
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1
M Programmazione web HTML, CSS e JavaScript Offerte e Richieste di Lavoro e/o Collaborazione 6

Discussioni simili