2012-02-16 9 views
0

私は、ブラウザサイズを検出し、特定の画面サイズ(700px +、900px +および1100px +)で提供されるCSSに基づいてページレイアウトを変更するDrupalのレスポンシブテーマ(Omega)を使用しています。HTML5レスキューレイアウトで動的にjQuery関数を呼び出す

これは、メディアクエリを追加したり、bodyタグにCSSクラスを追加したりすることによって実現します。

私は、ブラウザのウィンドウサイズの変更に応じて呼び出す必要がある機能が少し異なりますが、応答性が必要です。ページのリロードなしに相対関数を呼び出す

これを行うことはできますか?

私は現在、このようなものを持っている:

$(window).resize(function(){ 
var width = $("body").width(); 
    if(width>1100) 
    { 

         $('.accordion').gridAccordion({width:1160, height:526, columns:4, distance:2, closedPanelWidth:50, closedPanelHeight:50, alignType:'centerCenter', slideshow:true, 
         panelProperties:{ 

         }}); 

    } 


     if(width>900) 
    { 

        $('.accordion').gridAccordion({width:920, height:417, columns:4, distance:2, closedPanelWidth:50, closedPanelHeight:50, alignType:'centerCenter', slideshow:true, 
        panelProperties:{ 

        }}); 

    } 

});

この問題は、ウィンドウのサイズを変更するまでdivがロードされず、ウィンドウのサイズが変更されたことを認識する前にリフレッシュが必要になるという問題があります。

私はこれに得ることができる助けに感謝します、事前に感謝します。

EDIT

だから私は、これは今、今のdivはすぐにロードしていないとの問題を修正しましたが、それはまだdoesnのこの

$(window).bind('resize load',function(){ var width = $("#zone-header").width(); if(width>1100)...

見えるように自分のコードを修正しましたサイズを変更してページを更新しない限り、サイズ変更の問題を解決できません。私は助けることができませんが、私は決着にとても近いと感じていますが、ここからどこに行くのか分かりません。最初に呼び出されていない

答えて

0

だけで簡単当初は自分でそれを呼び出すことによって解決することができます:

$(window).resize(function(){ 
    // stuff 
}).resize(); // fire the resize 

限り画面をリフレッシュするために必要として、場合であってはならないこと。私は問題が複数回呼び出された場合に正しく動作しないプラグインであると思われますが、そのプラグインには慣れていません。

+0

プラグインで、私が使用していますが、私はjQueryを使ってその熱いじゃないと場合は、プラグインライターを求めている。この http://codecanyon.net/item/grid-accordion/full_screen_preview/141991 です彼は反応の良いバージョンを持っていましたが、現在生産中であると言われています –

+0

私は上記のコードにいくつか変更を加えましたが、それでも私の問題は完全には解決していません。ありがとうございました。 –

+0

私は他に何ができるのか分かりません。多くのプラグインは2回適用すると正しく動作しません。プラグインの変更以外の唯一の回避策はかなり悪いです。元の '.accordion'のコピーを保持し、毎回プラグインが添付されているものを削除し、元のものを複製してプラグインを再接続します。または、プラグインが行うすべてのことを把握し、逆にして再適用することができます。すべての悪い選択肢。 –

関連する問題