【问题标题】:Modernizr.load Deprecated. Yepnope.js Deprecated. Now what?Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?
【发布时间】:2016-03-03 09:04:29
【问题描述】:

在 Modernizr v3 之前,我使用的是 yepnope.js

Modernizr.load 和 yepnope.js 都已被弃用。我们现在如何有条件地调用样式表或 javascript 文件?

使用 Modernizr v2.5.3 的示例:

Modernizr.load({
  test: Modernizr['object-fit'],
  nope: ['./dist/scripts/object-fit.js'],
  complete: function(){
  if (!Modernizr['object-fit']) {
   jQuery(".poster img").imageScale({
   scale: "best-fill", 
   rescaleOnResize: true
   });
  }
 }
});

【问题讨论】:

    标签: conditional modernizr yepnope


    【解决方案1】:

    a new syntax 并且功能名称都是小写的。您可以将其与jQuery's getScript method 结合使用。

    看起来像这样:

    if (Modernizr.objectfit){
        jQuery.getScript("./dist/scripts/object-fit.js")
            //it worked! do something!
            .done(function(){
                console.log('js loaded');
            })
            //it didn't work! do something!
            .fail(function(){
                console.log('js not loaded');
            });
    } else {
        jQuery(".poster img").imageScale({
            scale: "best-fill", 
            rescaleOnResize: true
        });
    }
    

    【讨论】:

    • 非常感谢@mhk!抱歉,这么久才回复。
    • 澄清一下,这对我有用:``` $(function(){ if (Modernizr.objectfit){ } else { $.getScript("./dist/scripts/object- fit.js", function() { $(".img-scale").imageScale({ scale: "best-fill", rescaleOnResize: true }); }); }; }); ```
    【解决方案2】:

    在这里查看脚本:https://stackoverflow.com/a/7719185 — 不需要 jQuery。 (请注意,答案中有一个较短的 Promise 示例;不要在第一个示例之后停止阅读(就像我一样)。

    这里是 CSS:loadCSS:https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js

    ——在某种程度上,这甚至比 YepNope.js 更好,如果你不需要它的任何功能,只需要加载东西 + 回调。因为上面链接的东西比 yepnope.js 小(小于min.js.gz)。

    (并且可以与Modernizr 结合,就像他的答案中显示的mhk。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多