2016-01-28 1 views
0

j'ai parlé this thread pour obtenir un div transparent pour afficher au-dessus du contenu du site Web et la faire disparaître en cliquant dessus ...overlay div transparent une fois clic

cependant, lorsque quelqu'un visite une page dans le site et ils cliquent sur le bouton d'accueil ils sont affichés le div transparent à nouveau ... y at-il un moyen d'avoir le div apparaître qu'une seule fois et ne pas apparaître à nouveau après qu'ils le ferment?

+5

[Cookies] (https://stackoverflow.com/questions/4825683/how-do-i-create-and-read-a-value-from-cookie) ou [localStorage] (https: // stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage) – Hatchet

Répondre

0

La meilleure façon de faire est de définir un cookie. De cette façon, vous pouvez le cacher pour toujours, ou le cacher pendant un temps spécifié.

document.cookie = "transparentdivShow = false"; 

Et maintenant, vous pouvez vérifier si ce cookie existe, et si oui, ne montrent pas la div:

if(document.cookie.indexOf("transparentDivShow") >= 0) { 
    return true; // Don't show it 
} else { 
    return false; // Show the div 
} 
+0

Je n'ai jamais défini de cookie avant ... mon ID div est #overlay ... comment implémenterais-je l'exemple de code fourni? document.cookie = "#overlayShow = false"; if (document.cookie.indexOf ("# overlayShow")> = 0) { return true; // Ne pas afficher } else { return false; // Montrer le div } – Cherubrock74

0

Comme l'affiche ci-dessus mentionné, vous pouvez utiliser un cookie. Alternativement, vous pouvez utiliser le stockage local HTML5! Le stockage local permet aux données d'être stockées localement dans le navigateur d'un utilisateur.

Dans ce cas, vous pourriez avoir quelque chose comme un compteur de clics qui compte pour voir si le compteur de clics est supérieur à 1. S'il est supérieur à 1, donnez à la div un attribut caché ou supprimez-le.

if (sessionStorage.clickcounter) { 
<div hidden> You can't see me. I'm invisible. </div> 
} else { 
sessionStorage.clickcounter = 1; 
<div visible> Hi! I'm not transparent. </div> 
} 

J'espère que cela aide. Voici une page avec plus d'informations à ce sujet! http://www.w3schools.com/html/html5_webstorage.asp

+0

merci beaucoup pour vos réponses! Pensez-vous que je pourrais utiliser à la fois les cookies et html5? Au cas où quelqu'un aurait des cookies désactivés, html5 ferait encore le travail ... – Cherubrock74

+0

Vous voulez probablement dire que vous pouvez utiliser le stockage local comme solution de repli si les cookies ne sont pas activés. Dans ce cas oui, vous pouvez. La raison pour laquelle je préfère les cookies au-dessus du stockage local est le fait que les cookies peuvent avoir une date d'expiration, de sorte que vous pouvez faire réapparaître le message après une période définie. –

+0

C'est vrai. Le délai d'expiration des cookies peut être très utile, Jasper a raison à ce sujet. JavaScript facilite le paramétrage et la lecture des cookies, ce qui devrait poser problème. http://www.w3schools.com/js/js_cookies.asp Et oui, vous pouvez utiliser à la fois html5 et les cookies avec html5 comme solution de repli. Cela fonctionnerait très bien. – crepuscularCoder