2016-03-27 26 views
0

Tıkladığınızda bir slayt simgesine dönüşen bir hamburger simgesi var. menüdeki bir bağlantı tıklandığında menü kapanır ve sayfa ilgili bölüme kaydırılır. ancak menü simgesi daha sonra "x" durumunda kalır. Linklerden biri tıklandığında "x" hamburger durumunu geri almak istiyorum. animasyon cssBağlantı ile menü ikonu arasında geçiş yap

<div id="hamburger" class="slideout-menu-toggle"> 
    <div id="nav-icon3"> 
     <span></span> 
     <span></span> 
     <span></span> 
     <span></span> 
    </div> 
</div> 

<script> 
    $(document).ready(function(){ 
    $('#nav-icon3').click(function(){ 
    $(this).toggleClass('open'); 
    }); 
}); 

    $('.slideout-menu-toggle').click(function(){ 
    $("#nav-icon3").toggleClass('open'); 
}); 
</script> 

sitesi menüyü kaydırarak açmak için sağdaki hamburger menü simgesini http://fatdonut.ie/

tıklamasıyla izlenebilir üzerinden kontrol edilir. Menüdeki bağlantılardan biri tıklandığında hamburger simgesi "x" durumunda kalır. Linkin "x" yi bir hamburgere geri döndürmesini istiyorum.

+0

Tamam. Öyleyse yap. Ne yapmamızı istiyorsun? – Rob

+0

Bu soruyu off-topic olarak kapatmak için oy veriyorum çünkü bu soru sorucunun kendisi için kodu yazmamızı istiyor. – Rob

+0

@Rob Bence bu daha fazla bir hata ayıklama sorusu, yine de iyi yazılmadığına katılıyorum. – DBS

cevap

1

Ben hamburgerin CSS tarafından çalıştırıldığını ve open sınıfı tarafından tetiklendiğini varsayarak, daha fazla ayrıntı vermemeliyiz, böylece neler olduğunu biliyoruz.

$('.yourLinks').click(function(){ 
    $(".open").removeClass('open'); 
}); 

gerçek bağlantılar için çalışan bir seçici ile .yourLinks değiştirin ve zaman herhangi biri, bu hamburger menüsünü sıfırlamak gerekir: tıklandığında diğer bağlantıların

zaman bir menü simgesinden open sınıfını kaldırmak diğer bağlantı tıklandı.


Daha spesifik bir sürüm şimdi sitenize baktım.

bunun için JS #hamburger den .slideout-menu-toggle çıkarın ve takas:

$(document).ready(function(){ 
    $('#hamburger').click(function(){ 
     $(this).toggleClass('open'); 
    }); 
    $('.slideout-menu-toggle').click(function(){ 
     $('.open').removeClass('open'); 
    }); 
}); 

oldukça #nav-icon3 çıkarmadan daha tıklandığı zaman uygulayarak düşürdükleri, .slideout-menu-toggle üzerine open sınıfını geçiş edildi $(this) kullanılarak tıklanmış olan öğeye. Ayrıca, durumu oldukça kafa karıştırıcı yapan birçok öğe türünde de aynı sınıfa sahip oldunuz.

+0

dbs için teşekkürler. bir şey kaçırmadıkça bu işe yaramıyor – mccavandish

+0

@mccavandish Sorunuzda düzenlediğiniz kodu kullanmaya çalışıyorsanız, hala hamburger 'div'unda" menü "geçiş menüsüne sahipsiniz. Bu da hamburgeri iki kere tıklatırsın ve her seferinde değişmez. – DBS

+0

"slideout-menu-toggle" sınıfı ise menüyü açan şeydir. hamburger devletini değiştiren "açık" sınıfı. Başka bir sınıfa ya da kimliğe (x'i hamburger'e geri döndürecek olan) bağlar mı yapacak? – mccavandish

İlgili konular