2011-09-13 5 views
8

私は、1024より大きい画面幅でデフォルトで開きたいスライドアウトのナビゲーションバーを持っていて、デフォルトでは< 1024で閉じています。私はそれを開いたり閉じたりするボタンを持っています。私はちょうどjsを学び始めています。ウィンドウの幅が1024より大きい場合、ifステートメントにデフォルトのトグル状態を設定する方法があると思います。どんな助けでも大歓迎です。ここではトグルのために私がこれまで持っていたことがあります。jqueryのifステートメントは、画面サイズに基づいて

$('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

これは、[CSS3メディアクエリ](http://www.css3.info/preview/mediaのための仕事のように聞こえますjqueryではなく-queries /)。 – bzlm

+0

私はもともとCSS3メディアクエリーを使用していましたが、まだアニメーションを開いたり閉じたりするためにトグルする必要があります。私は、デフォルトのトグル状態をクローズに設定する方法を見つけることができないようです。これはjqueryでやりたいと思っています。私が持っている問題は、パネルでのメディアクエリのキックが技術的にはまだ開いている状態なので、それをクリックすると再び閉じることを試み、その後はうまくいくことです。 – Drhodes

答えて

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. 
}); 

編集:

それとも、これはあなたが後にしているものです:

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

幅がある場合は、文書の準備ができたときに、この要素を切り替えます正しい。私は同様のプロジェクトをやっていたし、このコードは私のために働い

+0

Amar、 もう少し説明したり、私が提供したコードを使って例を教えてください。私はあなたの助けに感謝します。 – Drhodes

+1

クラス名が "element"の要素の表示と非表示のコメントと例を追加しました。現在のコードでは、何かがクリックされたときに何かを表示するように見えます。それはそうですか、または実際のウィンドウのサイズを変更するにはそれを変更しますか?ウィンドウのサイズに応じてクリックしたときの要素の動作が異なるようにしたいのですか? – demux

2

screen.width > 1024をテストするだけです。

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

+0

私はこれを使って画面の幅をテストしましたが、上記の幅に基づいてトグルのデフォルト状態を変更するためにここからどこに行くのか分からないようです。 $(ドキュメント).ready(関数(){ \t IF((screen.width> = 1024)) \t { \t \t \t} 他\t { \t \t \t}} \t ); – Drhodes

+0

ユーザーがウィンドウのサイズを変更したときに変更しますか? '$(window).resize(function(){if(screen.width> = 1024)...});' – Blazemonger

+0

画面サイズが1024のときに変更する必要があると思います。私の主な問題は、<1024、1024より大きい場合に開くときに、トグルのデフォルト状態を閉じることです。私はcss3のメディアクエリで残りをすることができましたが、アニメーションとトグルを行うためにjqueryを見ました。 – Drhodes

0

..

if($(window).width() >= 540) { 
    //code to execute 
} 
関連する問題