2015-07-03 12 views
5

göster kezgöster bir <a> href linke tıkladıktan sonra web boyunca kalıcı div gizli bir kez kalıcı bir href linke tıkladıktan sonra web sitesine göz atmak div gizli

bir örnek bu işe nasıl: (küçük - başlıklı başlıkta başlangıçta gizlenir, ancak ana sayfada bir kez tıklandığında, örneğin (sayfa 1) (küçük başlık), yeni bir sayfa girseniz veya siteyi yenilemenize rağmen web sitesi boyunca görünür olur.

<div class="big-header"> 
    <ul> 
    <li> 
     <a href="#">Page 1</a> 
    </li> 
    <li> 
     <a href="#">Page 2</a> 
    </li> 
    <li> 
     <a href="#">Page 3</a> 
    </li> 
    </ul> 
</div> 
<div class="little-header"> 
    <ul> 
    <li> 
     <a href="#">Sub Page 1.1</a> 
    </li> 
    <li> 
     <a href="#">Sub Page 1.2</a> 
    </li> 
    <li> 
     <a href="#">Sub Page 3.3</a> 
    </li> 
    </ul> 
</div> 

http://jsfiddle.net/ctL6T/179/

Bu jQuery tarafından yapılmaktadır tahmin edebilirsiniz. Her şey büyük bir yardım olurdu. Şerefe!

+3

bir çerez ayarlayın veya gösterilmesi gerektiğini DIV'leri anlatmak için localStorage kullanın. Sayfa yeniden yüklendiğinde, çerezi kontrol edin ve bu DIV'leri gösterin. – Barmar

cevap

5

Menü gösterildiyse bir bayrağı saklamak için Window.localStorage'u kullanabilirsiniz, daha sonra yalnızca bir kez gösterme işlevini yürütmek için bunun gibi bir komut dosyası kullanın.

Aşağıdaki yorumunuza cevaben, mantık ekledim, böylece bu komut birden fazla sayfada varsa, her sayfa için bağımsız olarak çalışır. Ziyaret edilen her sayfa için bilgileri ayrı ayrı saklamak için Window.location'u kullanarak yapıyorum. @Barmar ve @Tiny Dev söylediğimiz gibi

(Demo)

var hide = localStorage[location] ? false : true; 
var hidden = document.querySelector('.little-header'); 
if(hide) { 
    hidden.style.display = 'none'; 
    document.onclick = function() { 
     localStorage[location] = true; 
     hidden.style.display = ''; 
     document.onclick = ''; 
     console.log('click'); 
    } 
} 
+0

Teşekkürler @Tiny Giant bu harika çalışıyor, şimdi başka bir sayfaya geçerken bu işlevi RESET olarak nasıl yapılandırabilirim örn. mywebsite.com/anotherpage/? sonra gelen herşey? RESET almayacak ???? localStorage.clear(); somthing ?? – user3603497

+0

@ user3603497 Yukarıdaki kodu güncelledim. Bunun işleyiş şekli, her sayfa için bayrağı saklayabilmesidir. Bu, "sıfır" anlamına gelmez. Bu nedenle, web sitenizde yeni bir sayfayı ziyaret ettiğinizde, sıfırlandığı görülecektir, ancak daha önce "tıkladığınız" bir sayfaya geri gittiğinizde, yine de açık olacaktır. Eğer bu sizin aradığınız işlevsellik değilse, o zaman başka bir şekilde çalışmasını sağlayabilirim. –

2

, localStorage iyi çalışıyor ve kullanımı çok kolaydır. İşte jQuery sürümü.

$(function() { 
    var showLittleHeader = localStorage.getItem('show_little_header'); 
    if (showLittleHeader) { 
     $('.little-header').show(); 
    } 
    $('.big-header').on('click', 'a', function() { 
     localStorage.setItem('show_little_header', 1); 
     $('.little-header').show(); 
    }); 
}); 

Fiddle: http://jsfiddle.net/wqpjfvy7/

İlgili konular