2013-03-08 47 views
0

我正在開發一個自適應網站,我有一些標籤,從標籤更改爲手風琴在小屏幕上。這裏是我正在做它的那一刻:當window.width被調整執行的功能,但並不是高度

var myGlobalVariable = {}; 

$(window).resize(function(e) { 
    duringResize(); 
    myGlobalVariable.windowWidth = window.innerWidth; 
}); 

function widthHasChanged() { 
    return window.innerWidth !== myGlobalVariable.windowWidth; 
} 

function duringResize() { 
    if(widthHasChanged()) { 
     if(Modernizr.mq('all and (min-width:1000px)')) { 
      /* Do stuff for tabs */ 
     } else { 
      /* Do stuff for accordion */ 
     } 
    } 
} 

,因爲我不必使用全局變量來存儲瀏覽器窗口的最後寬以請檢查是否我不開心這個寬度已更改。

我必須這樣做的原因是因爲在手機上,當標籤處於手風琴模式時,單擊其中一個實際使文檔更高以容納標籤內容。出於某種原因,即使移動設備上的「窗口」尺寸仍然相同,這也被歸類爲重新調整大小。這意味着我的標籤/手風琴代碼即使在寬度沒有改變時也被調用,這使得事情變得糟糕。

有什麼我失蹤或者這是實現這一目標的唯一途徑? jQuery和香草JavaScript解決方案是受歡迎的。

回答

1

沒有綁定到對窗口寬度改變特定事件。你的解決方案對我來說很好。

我能想到的唯一方法是定時檢查$(window).width。我認爲,平衡,單一的全球變量是可取的:)

+0

謝謝,我懷疑,但它是我一直在看這一整天的事情之一,我已經實現了各種不同的解決方案,以取得不同的成功。這是第一個實際工作正常的人。它只是沒有我想要的那麼優雅。 – MrMisterMan 2013-03-08 14:35:19

相關問題