2012-02-16 27 views
0

我正在Drupal中使用響應主題(Omega),它檢測瀏覽器大小並根據爲特定屏幕尺寸(700px +,900px +和1100px +)提供的CSS更改頁面佈局。在HTML5中動態調用jQuery函數響應佈局

這樣做我相信通過添加媒體查詢和/或添加css類到body標籤。

我有一個稍微變化的函數,我想調用瀏覽器窗口大小變化的反應,但它必須響應,I.E.調用沒有頁面重新加載的相對功能

可以這樣做嗎?

我現在有這樣的事情:

$(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,直到我調整窗口大小,並且它還需要刷新,然後才能識別窗口已調整大小。

我很感激任何幫助,我可以得到這一點,在此先感謝。

編輯

所以我修改我的代碼看起來像這樣

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

這現在已經解決了該問題與股利不加載向右走,但它仍然沒有按除非我調整大小然後刷新頁面,否則我不會修復調整大小的問題。我不禁感到自己如此接近解決方案,但只是不知道該從哪裏出發。

回答

0

的不最初稱可以很容易地通過簡單的最初自己調用它來解決:

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

至於需要刷新屏幕,這不應該是這樣的。如果多次調用插件,我會懷疑問題在於您使用的插件不能正常工作,但我對該插件不熟悉。

+0

插件我現在用的就是這個 http://codecanyon.net/item/grid-accordion/full_screen_preview/141991 我不使用jQuery是熱,並詢問是否插件作家他有一個響應版本,但他說目前只在生產中 – 2012-02-16 16:06:40

+0

我已經對上述代碼做了一些更改,但它仍然沒有完全解決我的問題,您是否能夠提供更多的幫助?謝謝。 – 2012-02-17 14:55:22

+0

我不太確定我還能做什麼。如果應用兩次,許多插件無法正常工作。除了修改插件之外,唯一的解決方法是非常糟糕的。您可以保留原始'.accordion'的副本,然後每次刪除插件所連接的副本,克隆原始文件並重新附加插件。或者你可以嘗試找出插件所做的一切,將其逆轉,然後重新應用。所有不好的選擇。 – 2012-02-17 15:02:01