必威体育Betway必威体育官网
当前位置:首页 > IT技术

modernizr的使用

时间:2019-10-18 17:11:09来源:IT技术作者:seo实验室小编阅读:65次「手机版」
 

modernizr

测试浏览器有木有css和html的新特性,例如测试cssgradients特性,在html根目录加入 类似如下的类

<html class="cssgradients"> or <html class="no-cssgradients">

cssgradients表示含有相应特性,no-cssgradients则表示没有。

根据检测结果进行渐进式设计,如下:

.no-cssgradients .header {
  background: url("images/glossybutton.png");
}

.cssgradients .header {
  background-image: linear-gradient(cornflowerblue, rebeccapurple);
}

如果modernizr自动生成的class名与你自己命名的class名有冲突,你还可以进行如下配置

{
  "classPrefix": "foo-",
  "feature-detects": ["dom/hidden"]
}

你会得到如下的测试结果:

<html class="foo-hidden">
"enableJSClass": true, //根目录添加js或者no-js
"enableClasses": true  //允许为html标签添加测试结果类

在js中测试是否含有新特性

  if (Modernizr.awesomeNewFeature) {
    showOffAwesomeNewFeature();
  } else {
    getTheOldLameExperience();
  }

modernizr API

Modernizr.on('flash', function( result ) {
  if (result) {
   // the browser has flash
  } else {
    // the browser does not have flash
  }
}); 

增加自己的特性检测

     Modernizr.addTest('itsTuesday', function() {
     var d = new Date();
     return d.getDay() === 2;
});
    Modernizr.addTest('hasJquery', 'jQuery' in window);
});

增加测试组

    var detects = {
     'hasjquery': 'jQuery' in window,
     'itstuesday': function() {
       var d = new Date();
       return d.getDay() === 2;
     }
    }
    Modernizr.addTest(detects);
     var keyframes = Modernizr.atRule('@keyframes');
     if (keyframes) {
       // keyframes are supported
       // could be `@-webkit-keyframes` or `@keyframes`
     } else {
       // keyframes === `false`
     }
    Modernizr._domPrefixes === [ "Moz", "O", "ms", "Webkit" ];

让你决定是否让浏览器包含某个固定事件

    hasEvent('blur') // true,work on p;

    hasEvent('devicelight', window) // true,work on windows;

检查浏览器是否符合媒体查询的设置

    Modernizr.mq('only all'); // true if MQ are supported, false if not

     var query = Modernizr.mq('(min-width: 900px)');
     if (query) {
       // the browser window is larger than 900px
     }
    prefixed('boxSizing') //返回'MozBoxSizing' ,boxSizing或者false

    var rAF = prefixed('requestAnimationFrame', window); //针对window,返回实际的函数
    raf(function() {
     renderFunction();
    })

    var rAFProp = prefixed('requestAnimationFrame', window, false);//返回名字
    rafProp === 'WebkitRequestAnimationFrame' // in older webkit

prefixed常见用法,将固定事件绑定。

    var transEndEventNames = {
        'WebkitTransition' : 'webkitTransitionEnd', * Saf 6, Android Browser
        'MozTransition'    : 'transitionend',       * only for FF < 15
        'transition'       : 'transitionend'        * IE10, Opera, Chrome, FF 15+, Saf 7+
    };
    var transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
    Modernizr.prefixedCSS('transition') // '-moz-transition' in old Firefox
    var rule = Modernizr._prefixes.join('transform: rotate(20deg); ');
    rule === 'transform: rotate(20deg); webkit-transform: rotate(20deg); moz-transform: rotate(20deg); o-transform: rotate(20deg); ms-transform: rotate(20deg);'
    rule = 'display:' +  Modernizr._prefixes.join('flex; display:') + 'flex';
    rule === 'display:flex; display:-webkit-flex; display:-moz-flex; display:-o-flex; display:-ms-flex; display:flex'

是否有某种css特性(含有前缀模式)

    testAllProps('boxSizing')  // true

    testAllProps('display', 'block') // true
    testAllProps('display', 'penguin') // false

    Modernizr.testProp('pointerEvents')  // true,不检测带有前缀的特性

相关阅读

如何使用IVT BlueSoleil 如何在电脑上使用蓝牙耳机

1 确保电脑上有蓝牙适配器 (现在很多电脑是不配蓝牙的),如果没有,网上买个蓝牙适配去,十几块钱很便宜。好了之后装一个下面这个软

iOS Instruments工具使用

iOS性能优化:Instruments工具 前言:即使再牛的程序员,写出再棒的代码依然存在很多可优化的地方,更别说我们普通程序员写出的普通的代

ShellExecute 与 ShellExecuteEx 的使用方法

ShellExecute:1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型:HINSTANCE ShellExecute(

通用广告拦截器AD Muncher怎么使用?

Ad Muncher简称&ldquo;adm、奶牛&rdquo;,是真正的加载前屏蔽而不是加载后隐藏。其广告过滤功能几乎支持所有浏览器和联网软件:支持I

使用DBScan + Kmeans计算区域集聚和中心点

DBSCAN,英文全写为Density-based spatial clustering of applications with noise ,是在 1996 年由Martin Ester, Hans-Peter Kri

分享到:

栏目导航

推荐阅读

热门阅读