2011-09-13 34 views
8

Varsayılan olarak> 1024 ekran genişliğinde açmak ve varsayılan olarak < 1024 tarafından kapatmak istediğim bir kaydırma çubuğu var. Açmak ve kapatmak için bir düğme var. Sadece j'leri öğrenmeye başladım. Pencere genişliği> = 1024 ise if ifadesinde varsayılan geçiş durumu ayarlamanın bir yolu olduğunu hayal ediyorum. Herhangi bir yardım büyük takdir edilecektir. İşte geçiş için şu ana kadar sahip olduğum şey.jquery Ekran boyutu temel alındığında ifade

$('a.expand').toggle(function() { 
     $(this).addClass("open"); 
     $('#nav').animate({width: 50},{queue:false, duration:300}); 
     $('.wrapify').animate({marginLeft: 50},{queue:false, duration:300}); 
     $('.primarynav ul').hide(); 
     $('.navlogo').hide(); 

    }, function() { 
     $(this).removeClass("open"); 
     $('#nav').animate({width: 200},{queue:false, duration:300}); 
     $('.wrapify').animate({marginLeft: 200},{queue:false, duration:300}); 
     $('.primarynav ul').show(); 
     $('.navlogo').show(); 

    }); 
+2

Bu [CSS3 Medya Sorguları] (bir iş gibi geliyor http://www.css3.info/preview/media jQuery yerine -queries /). – bzlm

+0

Orijinal olarak CSS3 medya Sorgulamalarını kullandım, ancak yine de açık ve kapalı animasyon uygulamak için geçiş yapması gerekiyor. JQuery ile yapmayı umduğum varsayılan geçiş durumunu nasıl kapatacağımı anlayamıyorum. Sorun şu ki, paneldeki medya sorgusu teknik olarak hala açık durumda iken, böylece tekrar tıklamaya çalıştığında yumruk zamanını tıklattığımda, bundan sonra iyi çalışıyor. – Drhodes

cevap

20
$(document).ready(function() { 
    // This will fire when document is ready: 
    $(window).resize(function() { 
     // This will fire each time the window is resized: 
     if($(window).width() >= 1024) { 
      // if larger or equal 
      $('.element').show(); 
     } else { 
      // if smaller 
      $('.element').hide(); 
     } 
    }).resize(); // This will simulate a resize to trigger the initial run. 
}); 

Düzenleme:

Ya da belki bu sen ne sonra: Belge hazır olduğunda genişliği ise

$(document).ready(function() { 
    if($(window).width() >= 1024) { 
     $('a.expand').click(); 
    } 
}); 

Bu öğeyi açabilir veya kapatabilirsiniz doğru.

+0

Amar, Biraz daha açıklayabilir misiniz, yoksa verdiğim kodu kullanarak bana bir örnek gösterebilir misiniz? Yardımın için minnettarım. – Drhodes

+1

Bazı elemanlar ve "element" sınıf adıyla bir öğeyi göstermek ve gizlemek için örnekler eklendi. Mevcut kodunuzda, bir şey tıklandığında gösterilecek bir şey istediğiniz gibi görünüyor. Öyleyse mi, yoksa gerçek pencerede yeniden boyutlandırılmasını mı istiyorsunuz? Pencerenin boyutuna bağlı olarak öğenin tıklandığında farklı davranmasını istiyor musunuz? – demux

2

Sadece screen.width > 1024 için test edin.

https://developer.mozilla.org/en/DOM/window.screen.width

+0

Ekran genişliğini sınamak için bunu kullandım, ancak varsayılan genişlik durumlarının söz konusu genişliğe bağlı olarak değişmesi için buradan nereye gidileceğini anlayamıyorum. $ (document) .ready (function() { \t if ((screen.width> = 1024)) \t { \t \t \t} başka \t { \t \t \t} \t}); – Drhodes

+0

Pencere kullanıcı tarafından yeniden boyutlandırıldığında değiştirilmesini ister misiniz? Eğer öyleyse, şunu kullanın: '$ (window) .resize (function() {if (screen.width> = 1024) ...});' – Blazemonger

+0

Ekran boyutunun 1024 olduğu zaman değişmesi gerektiğini düşünüyorum. 1024'ün altına yeniden boyutlandırılırlarsa. Benim ana problemim, <1024 olduğunda açma kapağının varsayılan durumunun> 1024 olduğunda açılmasıdır. Geri kalanını css3 medya sorgularıyla yapabilirdim, ancak animasyonu ve geçişi yapmak için jQuery’e baktım. – Drhodes

0

Ben benzer bir proje yaptığını ve bu kod benim için çalıştım ..

if($(window).width() >= 540) { 
    //code to execute 
} 
İlgili konular