2013-04-29 43 views
3

我想(與當地)使用Yepnope與Modernizr加載CSS & JS文件。所以我可以更好地管理文件,並且很容易編碼。Yepnope&Modernizr screen.width的條件

這是當前佈局:

Modernizr.load([ 
    { 
     test: Modernizr.mq('all and (max-width: 1070px)'), 
     yep: '/css/smartdevice.css','/js/smartdevice.js', 
    } 
    , 
    { 
     test: Modernizr.mq('all and (min-width: 481px) and (max-width: 1069px)'), 
     yep: '/css/tablet.css','/js/tablet.js', 
    }, 
    { 
     test: Modernizr.mq('all and (max-width: 1070px)'), 
     yep: '/css/screen.css','/js/screen.js', 
    } 
]); 

的我是相當新的JS,但我已經使用jQuery的5月場合。然而,他們都立即加載,無論如何,我可以加載基於px寬度的CSS文件? (參考上面的值)。我知道你可以做這個服務器端,但在我的位置。

它必須是js中的本地端...我目前在SCSS中編碼。一切都很好,這只是在窗口寬度上注入文件/顯示文件的情況。

我認爲我需要添加一個if語句,但任何幫助都會大大提供!

-Neil

P.S我使用CodeKit & SCSS本地運行,上了一個新的iMac。

回答

3

yep: '/css/smartdevice.css','/js/smartdevice.js',是非法的JS。如果你想這是一個數組,使用yep: ['/css/smartdevice.css','/js/smartdevice.js'],。每當你看到一個JavaScript對象中一個逗號,假裝有一個換行,你會看到發生了什麼事情錯在這裏:

Modernizr.load([ 
{ 
    test: Modernizr.mq('all and (max-width: 1070px)'), // prop:val(=function) 
    yep: '/css/smartdevice.css',      // prop:val(=string) 
    '/js/smartdevice.js',        // ??? 
} 
,... 
+0

謝謝你,你會知道如何刪除基於有媒體查詢上述目的。 我仍然有問題的代碼。它似乎一次加載所有的CSS文件,而不是基於窗口寬度... 我也刪除內容(jquery .remove();通過完整),但不會被調用? – Neil 2013-04-30 09:29:18

+1

你顯示的代碼會在1070加載幾個.css文件,我不知道你在測試什麼,或者你的完整代碼,所以我不能告訴你它爲什麼會這樣做。也就是說,在加載時基於瀏覽器寬度加載文件是非常糟糕的,因爲桌面上的用戶可以調整瀏覽器的大小,而平板電腦/手機上的用戶可以更改他們的屏幕方向,從而改變最小/最大寬度。媒體查詢的重點在於將多個媒體查詢放在一個文件中,以便您的網站能夠全面響應,而不僅僅是一次正確調整大小。 – 2013-04-30 11:39:01

+0

是的,我知道你的意思..我最初想要在媒體寬度上加載JS。因爲我有jQuery FadeIn和SlideDowns ..但是,在使用移動css時,我當時不需要調用js ... 我想我很懶,想要同時添加CSS。 – Neil 2013-04-30 15:25:18

-1

幾點建議:

  1. 替換「所有」與標籤「而已所有」
  2. 替換‘最大寬度:在第一次測試1070px’與移動設備 寬度(320等)
+1

你不需要用大字體來編寫幾乎所有的東西。 – gustavohenke 2013-06-10 23:56:04