2011-12-17 11 views
6

Quiero implementar en mi sitio el bloque Div oculto por el show como en stackoverflow.com - en un momento en que el usuario quiere esconderlo él mismo presionado en el botón "X". Puede que ya tenga una solución preparada? ¡No soy verso en Javascript y estaría muy agradecido por la ayuda!Ocultar bloque (y recordarlo) con JavaScript y cookies?

foto:

Respuesta

3

Esto es simple ejemplo de trabajo sin necesidad de utilizar cualquier biblioteca externa. Puedes mejorarlo con tu animación/diseño. Además, estas funciones para las cookies pueden ser muy simplistas, pero puede usarlas en el futuro para establecer no solo el valor booleano. ACTUALIZACIÓN: He añadido functon para mostrar su ventana emergente de nuevo (para la depuración principalmente).

<html> 
<head> 
<script type="text/javascript"> 
function setCookie (name, value, expires, path, domain, secure) { 
    document.cookie = name + "=" + escape(value) + 
    ((expires) ? "; expires=" + expires : "") + 
    ((path) ? "; path=" + path : "") + 
    ((domain) ? "; domain=" + domain : "") + 
    ((secure) ? "; secure" : ""); 
} 
function getCookie (name) { 
    var cookie = " " + document.cookie; 
    var search = " " + name + "="; 
    var setStr = null; 
    var offset = 0; 
    var end = 0; 
    if (cookie.length > 0) { 
     offset = cookie.indexOf(search); 
     if (offset != -1) { 
      offset += search.length; 
      end = cookie.indexOf(";", offset); 
      if (end == -1) { 
       end = cookie.length; 
      } 
      setStr = unescape(cookie.substring(offset, end)); 
     } 
    } 
    if (setStr == 'false') { 
     setStr = false; 
    } 
    if (setStr == 'true') { 
     setStr = true; 
    } 
    if (setStr == 'null') { 
     setStr = null; 
    } 
    return(setStr); 
} 
function hidePopup() { 
    setCookie('popup_state', false); 
    document.getElementById('popup').style.display = 'none'; 
} 
function showPopup() { 
    setCookie('popup_state', null); 
    document.getElementById('popup').style.display = 'block'; 
} 
function checkPopup() { 
    if (getCookie('popup_state') == null) { // if popup was not closed 
     document.getElementById('popup').style.display = 'block'; 
    } 
} 

</script> 
</head> 
<body onload="checkPopup();"> 
    <div id="popup" style="display:none">Hello! Welcome to my site. If you want to hide this message then click <a href="#" onclick="hidePopup(); return false;">[x]</a></div> 
    <div>Some static text here.</div> 
    <div>Bring me <a href="#" onclick="showPopup(); return false;">back</a> my popup!</div> 
</body> 
</html> 
+1

tinta, gracias grande para su respuesta a mi pregunta! Estoy increíblemente agradecido por tu ayuda. Perdón por no poder responder de inmediato. – user1103744

+1

De nada :) – ink

0

Alternativa:

-> Using localStorage instead of cookie<br/> 
-> LocalStorage never expire until they delete personal data on browser<br/> 
-> jQuery Library for easy customization on future<br> 
-> re-display hidden remembered content<br> 
-> jsfiddle.net/axcelleria/41t76s8q/<br> 

Ah recuerdo que necesita una detección móvil también ..? Aquí la edición es:

Para la detección móvil:
jsfiddle.net/axcelleria/nmosxbgm/