javascript - 如何使用 Modernizr 测试是否支持关键帧?

标签 javascript modernizr browser-feature-detection

我想测试浏览器是否支持关键帧。所以我找到了this .

但是我真的很困惑如何使用?

Modernizr.addTest("keyframes", function(){
    //your test code without adding a support class || this will be done by Modernizr
    return [boolean]; // return true if it is supported or false if it is not supported
});
if(Modernizr.addTest()){
    alert('supports');
}
<小时/>

我像这样使用它,但它在所有浏览器中添加了该类:

Modernizr.addTest("keyframe", Modernizr.testAllProps('animationName'));
    if($("html").hasClass('no-keyframe')){
        alert('test');
    }

最佳答案

Modernizr是一个用于特征检测的javascript库。您可以在这里找到它:http://modernizr.com/

有几个指南可以帮助您入门。但基本上,一旦下载了文件,您就可以将该测试添加到 if 的底部。然后,当加载脚本时,它将向 <html> 添加一个 css 类。您的文档,例如<html class="keyframes"><html class="no-keyframes"> .

那么,下一步是如何使用这个? 好吧,你可以链接你的选择器,例如,你可以使用这个 jQuery 选择器:

$("html.keyframes className").on(....)

这意味着此事件只会在 className 上触发当它是 html.keyframes 的后代时.

以类似的方式,如果您只想在关键帧不可用时调用某些内容,您可以这样做:

$("html.no-keyframes className").on(....)

<小时/>

或者你可以使用类似的东西:

if($('html').hasClass('keyframes')) 
{
//do something only if keyframes is supported
}
else
{
//do something different if its not
}

我希望这会有所帮助。

更新

这是一个工作 fiddle ,向您展示如何使用它: http://jsfiddle.net/wf_4/hYNy8/

我已将 CDN 的 URL 包含在“外部资源”中,并且添加了关键帧的测试。 然后我使用 jquery 读取 class来自 html 的值标记并将它们插入到页面中,以便您可以看到它们。 我要补充的是,通过使用完整库,您将在每个页面加载时执行所有这些测试。我所做的就是为我需要的测试创建库的自定义构建。

关于javascript - 如何使用 Modernizr 测试是否支持关键帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631308/

相关文章:

javascript - 无法让媒体查询在 IE8 中工作

javascript - 如何使用 Modernizr 和 YesNope Javascript 检查 FormData

javascript - window.print() JavaScript 的特征检测解决方案

javascript - 检测浏览器对窗口间通信的支持

javascript - jQuery Datepicker 错误 - n 未定义

javascript - JQuery Bootstrap 日期选择器验证错误未显示

javascript - 使用 jQuery Zebra Dialog 单击注销链接时如何执行代码?

javascript - 使用 Modernizr 检测 Internet Explorer 版本

javascript - 我如何检测 :before pseudo-elements with javascript? 上的 CSS Transition 支持

javascript - SlideUp 命令被忽略,但在控制台中有效?