Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    chiusura automatica di un modal popup

    ho installa un popup modal che si apre con questo codice javascript

    <script type="text/javascript">
    var delay_popup = 2000;
    setTimeout("document.getElementById('overlay').sty le.display='block'", delay_popup);
    </script>
    adesso si chiude con il bottone
    <button class="close" title="Chiudere" onclick="document.getElementById('overlay').style. display='none';"></button>
    vorrei si chiudesse automaticamente dopo 10/15 secondi , che codice dovrei inserire?

    Grazie
    Luigi

  2. #2
    In una sola riga sarebbe qualcosa del tipo
    codice:
    setTimeout( function() { $('#overlay').show('', function() { setTimeout( function() { $('#overlay').hide('') }, 15000)	} ) }, 2000 );
    Formattata meglio sarebbe
    codice:
    1 setTimeout( 
    2    function() { 
    3       $('#overlay').show('', function() { 
    4          setTimeout( 
    5             function() { 
    6                $('#overlay').hide('') 
    7             }, 15000) } 
    8          ) 
    9       }, 2000 
    10 );
    Dunque. In pratica, usando jquery e js, dici che c'è un timeout che eseguirà una funzione, che a sua volta quando è terminata ne esegue un'altra.
    Da riga 1 a 10 è tutta la funzione di timeout.
    Da 2 a 9 è la funzione da eseguire con ritardo di 2 secondi.
    Da 3 a 8 è la funzione che, partendo con un ritardo di 2 secondi, ti "mostra" il div/popup tramite jquery
    Da 4 a 7 è una callback della "show", che dice alla funzione "show" che quando ha terminato dovrà eseguire un'altra funzione (questa da 4 a 7) che è a sua volta un "timeout" da 15 secondi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    ho provato ma non mi funziona, ti metto il link della pagina di prova:
    https://latrifula.com/testpop.php
    Luigi

  4. #4
    Quote Originariamente inviata da luigi45 Visualizza il messaggio
    ho provato ma non mi funziona, ti metto il link della pagina di prova:
    https://latrifula.com/testpop.php
    Luigi
    Beh sì....devi integrare jquery nella pagina...
    https://learn.jquery.com/about-jquery/how-jquery-works/

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    Grazie mille funziona perfettamente, solo che adesso il popup entra ed esce facendo movimento dall'angolo superiore sinistro verso il centro ed esce dal centro all'angolo superiore sinistro, preferivo senza movimenti in entrata e ussita ma va bene ugualmente.
    Grazie ancora Luigi

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    Senza scomodare jQuery, ma usando più o meno la stessa impostazione descritta da Dascos con i due setTimeout annidati, puoi risolvere semplicemente applicando lo style così come hai già nel tuo codice; cioè applicando display='block' la prima volta, nella funzione del setTimeout esterno, e display='none' in quella del setTimeout interno.

    Una cosa del genere:
    codice:
    const overlayElement = document.getElementById('overlay');
    setTimeout(function(){
        overlayElement.style.display = 'block';
        setTimeout(function(){
            overlayElement.style.display = 'none';
        }, 15000);
    }, 2000);
    Fai sapere se può andare bene.
    Buon proseguimento.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    Perfetto, Grazie mille a tutti
    Luigi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.