簡體   English   中英

使用modernizr有條件地加載javascript

[英]Conditionally load javascript using modernizr

我正在建立一個視差站點,並且我想在小視口上關閉視差滾動效果(我想為視口小於460px的視口關閉視差腳本)

我已經使用Modernizr完成了一些簡單的后備CSS修復程序,但是無法弄清楚如何針對此邊界,然后將其加載到相關的js文件中。

我正在使用scrollr.js的視差效果。

http://prinzhorn.github.io/skrollr/

謝謝您的幫助!!!

老實說,使用實際的JavaScript加載程序可能會更有利,特別是因為Modernizr完全是針對HTML5和CSS3的功能檢測,而且我相信對JavaScript本身沒有任何支持。 需要時,由現已棄用的YepNope處理(請參見下文)。

可能會解決您問題的腳本是Require.jsLABjsYepNope [Deprecated]

還有其他幾種可能性,例如Head.js ,但這基本上是一個完整的工具箱,具有Modernizr,jQuery和幾個合並成一個庫的功能。 但是,對於您想做的事情來說,它可能有點過於龐大。 還有LazyLoad ,它是不需要維護的,但也應該能夠為您提供所需的功能。

進一步閱讀:

Quora答案

ScriptJunkie文章(與Quora回答相同的作者)

如果您不需要特殊的東西,例如在腳本加載和執行后立即執行有序執行或回調,這很容易:

function loadJS(u){var r=document.getElementsByTagName("script")[0],s = document.createElement("script");s.src = u;r.parentNode.insertBefore(s,r);}

用法:

if(!Modernizr.feature){
    loadJS('path/to/script.js');
}

如果您使用的是jQuery,則可以執行此操作+,然后還有一個回調:

if(!Modernizr.feature){
    $.ajax({
        url: 'path/to/script.js',
        dataType: 'script',
        cache: true,
        global: false,
        crossDomain: true //good for debugging
    });
}

因此,在90%的情況下,您將不需要特殊的加載腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM