2013-10-09 126 views

回答

9

諮詢筆者在這裏感謝所有貢獻:)我偶爾會留意問關於它的SO問題,所以我可以提供幫助。

沒有什麼區別,查詢是在上匹配媒體。因此,一個更相關的問題可能是「查詢提供的是否超出matchMedia API?」

查詢,它最基本的是matchMedia API的簡單包裝。它的目標是消除您不斷使用matchMedia編寫的樣板代碼(它本身並不是一個非常好的API)。它還爲處理媒體查詢提供了更多的完整生命週期:設置(可以選擇延遲),匹配,不匹配,銷燬。你必須自己處理所有這些,而無需查詢。此外,它簡化了註銷媒體查詢,併爲舊版瀏覽器提供陷阱門,其中shouldDegrade

換句話說,查詢是一個很好的地方,它使用JS中的MQ進行相當先進的工作。否則,您可以使用原始匹配媒體API - 我絕對推薦使用簡單的東西。如果你沿着這條路線走,絕對不要使用調整大小的事件,因爲你必須將邏輯放入去抖動事件等等,它變得複雜快速!相反,使用瀏覽器的原生MediaQueryList.addListener:

matchMedia("screen and (min-width:40em)").addListener(function(mql) { 
    if(mql.matches) { 
     // do something when matching 
    } 
    else { 
     // do soemthing when no match 
    } 
}); 

。希望清除的東西了你

+0

是,幫助的感謝!很好的方式來查詢 –