2017-01-25 13 views
2

Ich möchte Popup nur einmal pro Sitzung zeigen, die nach einiger Zeit ablaufen. Kann mir jemand helfen?Anzeige Popup nur einmal pro Besuch

function PopUp(){ 
    $('.home-popup').fadeIn(500); 
} 

setTimeout(function(){ 
    PopUp(); 
},1000); // 1000 to load it after 1 second from page load 

$('.close-popup-btn').click(function() { 
    $('.popup').fadeOut(300); 
}); 
+0

Suchen Sie das Popup automatisch ausgeblendet? In diesem Fall können Sie auch eine Rückruffunktion für das fadeIn festlegen, die nach Ablauf eines bestimmten Intervalls ausgeblendet wird. Wenn Sie sicherstellen möchten, dass das Popup während einer bestimmten Sitzung nicht angezeigt wird, legen Sie einen Cookie fest. – Snowmonkey

+0

@Snowmonkey Ich habe Schließen-Schaltfläche für Popup FadeOut, nicht automatisch geschlossen. Wie setzt man ein Cookie, ein Beispiel? – Bane

Antwort

4

Sie localstorage für diese auch nutzen könnten. Um einen Speicherpunkt gesetzt: localStorage.setItem('myPopup','true'); und für sie überprüfen Sie so etwas tun könnte:

var poppy = localStorage.getItem('myPopup'); 

if(!poppy){ 
    function PopUp(){ 
     $('.home-popup').fadeIn(500); 
    } 

    setTimeout(function(){ 
     PopUp(); 
    },1000); // 1000 to load it after 1 second from page load 

    $('.close-popup-btn').click(function() { 
     $('.popup').fadeOut(300); 
    }); 
    localStorage.setItem('myPopup','true'); 
} 
+0

Es funktioniert! Kann ich das Exp-Datum hier irgendwie einstellen? – Bane

+0

Es hat kein Ablaufdatum. Wenn Sie möchten, dass der Benutzer den Browser oder die Registerkarte schließt, können Sie Folgendes tun: '$ (window) .bind ('beforeunload', function() { localStorage.removeItem ('myPopup'); }); ' – oompahlumpa

+0

Ich persönlich benutze dies für ein Popup mit einer E-Mail-Sammlung, in dem ich nur möchte, dass meine Benutzer es einmal sehen. Und nicht mit ihm bombardiert werden und das funktioniert sehr gut. Wenn ein bestimmtes Ablaufdatum erforderlich ist, müssen Sie einen Cookie verwenden. LocalStorage ist schnell und einfach. – oompahlumpa

0

, wenn sie von „pro Sitzung“ Sie bedeuten „pro Seite load“:

$(document).ready(function(){ 
function PopUp(){ 
    $('.home-popup').fadeIn(500); 
} 

setTimeout(function(){ 
    PopUp(); 
},1000); // 1000 to load it after 1 second from page load 

$('.close-popup-btn').click(function() { 
    $('.popup').fadeOut(300); 
}); 
}); 
2

ich ein Cookie mit dem popupSent Wert auf dem ersten Besuch eingestellt würde, und überprüfen, ob das Cookie vorhanden ist vor dem Aufruf die PopUp Funktion. Hier ist eine grobe Implementierung mit den Cookie-Helferfunktionen von hier: Set cookie and get cookie with JavaScript

function PopUp(){ 
    $('.home-popup').fadeIn(500); 
    createCookie('popup','1'); 
} 
if(readCookie('popup')){ 
    // 1000 to load it after 1 second from page load 
    setTimeout(PopUp,1000); 
} 
$('.close-popup-btn').click(function() { 
    $('.popup').fadeOut(300); 
}); 
Verwandte Themen