使用Modernizer有条件地加载javascript
我正在构建视差站点,我想关闭小视口上的视差滚动效果(我想关闭460px以下视口的视差脚本) 我已经用Modernizr做了一些简单的回退css修复,但不知道如何针对这个外围环境,然后加载到相关的js文件中 我使用scrollr.js实现视差效果使用Modernizer有条件地加载javascript,javascript,jquery,media-queries,parallax,modernizr,Javascript,Jquery,Media Queries,Parallax,Modernizr,我正在构建视差站点,我想关闭小视口上的视差滚动效果(我想关闭460px以下视口的视差脚本) 我已经用Modernizr做了一些简单的回退css修复,但不知道如何针对这个外围环境,然后加载到相关的js文件中 我使用scrollr.js实现视差效果 谢谢你的帮助 老实说,使用实际的JavaScript加载器可能更有利,特别是因为Modernizer完全是针对HTML5和CSS3的功能检测,而且我相信它根本不支持JavaScript。当需要时,它由现在不推荐的YepNope处理(见下文) 您的问题的
谢谢你的帮助 老实说,使用实际的JavaScript加载器可能更有利,特别是因为Modernizer完全是针对HTML5和CSS3的功能检测,而且我相信它根本不支持JavaScript。当需要时,它由现在不推荐的YepNope处理(见下文) 您的问题的一些潜在脚本是,或[已弃用] 还有其他几种可能性,例如,但这基本上是一个完整的工具箱,它具有Modernizer、jQuery和其他几个库的特性,并集成在一个工具箱中。然而,对于您想要做的事情,它可能有点太大了。还有,这是未维护的,但也应该能够为您提供所需的功能 进一步阅读:
老实说,使用实际的JavaScript加载程序可能更有利,特别是因为Modernizer完全是针对HTML5和CSS3的功能检测,而且我相信它根本不支持JavaScript。当需要时,它由现在不推荐的YepNope处理(见下文) 您的问题的一些潜在脚本是,或[已弃用] 还有其他几种可能性,例如,但这基本上是一个完整的工具箱,它具有Modernizer、jQuery和其他几个库的特性,并集成在一个工具箱中。然而,对于您想要做的事情,它可能有点太大了。还有,这是未维护的,但也应该能够为您提供所需的功能 进一步阅读:
如果您不需要特殊的东西,如有序执行或在加载和执行脚本后立即回调,则非常简单:
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%的情况下,您不需要特殊的加载脚本。如果您不需要特殊的东西,如有序执行或在加载和执行脚本后立即回调,则非常简单:
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%的情况下,您不需要特殊的加载脚本。非常感谢@Brandon,这是一个多么有用的回答。我浏览了Scroller的文档,他们为我的问题提供了现成的解决方案。然而,我过去一直在努力有条件地加载JavaScript,这些建议看起来很棒,我将进一步阅读您建议的内容:)很高兴听到@RyanCampbell:)我希望这对您将来有很大帮助!非常感谢@Brandon,这是多么有益的回答。我浏览了Scroller的文档,他们为我的问题提供了现成的解决方案。然而,我过去一直在努力有条件地加载JavaScript,这些建议看起来很棒,我将进一步阅读您建议的内容:)很高兴听到@RyanCampbell:)我希望这对您将来有很大帮助!