作者: admin

  • 检测浏览器是否兼容css3、HTML5某种属性–Modernizr.js

    判断 浏览器 判断 检测 浏览器 版本 是否 兼容 支持 CSS3 HTML5 属性

    HTML5 和 CSS3 的快速发展,给我们带来了极大的便利,比如从此再也不用花费大量的时间只是为了设计一个圆角的效果。

    但是!我们不能像控制机器一样来控制所有的人都一夜之间升级到现代浏览器,因为那些 不够现代的浏览器 诞生之时,HTML5和CSS3尚未被正式推出。

    于是,我们的问题来了:针对那些不支持新特性的浏览器而言,我们是直接放弃这些用户群呢,还是直接不用这些新特性,老老实实的用图片拼出圆角的特效?

    我想,答案是显而易见的。我们不能放弃那些因为这样那样的原因没法升级他们的浏览器用户,但也不能委屈了自己,不能用这些很酷的技术来写代码。

    所以我们根据浏览器的不同选择相应的解决方案。

     

    举例子:

    1,去网站:https://modernizr.com/download?setclasses

    modernizr

    这里我们检测浏览器是否支持<video>这个视频属性,根据上面的图下载好插件后。

     

     

    2,将插件加载到所有插件最前面。

    如果浏览器支持<video>则会在<html>上显示<html class=” audio”>,如果不支持则显示<html class=”no- audio”>

     

     

    3,做相应处理

    css做相应处理

    .no-audio .box { color: red; //不支持运行此样式}
    .audio .box { color: green; //支持运行此样式}

     

    js做相应处理

    if (Modernizr.audio) {
     // supported支持运行此
    } else {
     // not-supported不支持运行此
    }

     

    html标签class中如果是类似no-input-formtarget这样的,如果要判断是否支持就使用

    if (Modernizr.inputformtarget) {
     // input-formtarget支持运行此
    } else {
     // input-formtarget不支持运行此
    }

     

     

     

    由于Modernizr帮我们内置了 html5shiv 类库,所以我们必须在 <body> 加载之前引用这个类库。当然你如果针对的是IE9+的浏览器,那么大可以在页面元素加载完后再引入,但这样就会有 FOUC 这样极不友好的效果出现。

    最后,我们需要在 <html> 标签中加入 no-js 类,以免浏览器禁用了JavaScript。

     

    Modernizr.load()

    基于 YepNope.js ,Modernizr.load()根据一些条件判断来动态选择加载CSS和JavaScript,这无疑对避免不必要的资源加载有极大的帮助。

    你可以在这里( HTML5 Cross Browser Polyfills )找到几乎所有新特性的fallback解决方案。

    Modernizr.load(
        test: Modernizr.webgl,
        yep : 'three.js',
        nope: 'jebgl.js' 
    );

    当浏览器支持WebGL的时候,就引入 three.js 这个类库做一些3D效果。浏览器不支持WebGL的时候可以使用 jebgl.js 做一些fallback操作。

    还有一个比较酷的例子来自官方文档。我们在用jQuery类库的时候,通常都是这种写法:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
    <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js">\x3C/script>')</script>

    现在用Modernizr.load()可以这么写:

    Modernizr.load([
      {
        load: '//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js',
        complete: function () {
          if ( !window.jQuery ) {
                Modernizr.load('js/libs/jquery-1.7.1.min.js');
          }
        }
      },
      {
        // This will wait for the fallback to load and
        // execute if it needs to.
        load: 'needs-jQuery.js'
      }
    ]);

     

    文章来自:http://www.tuicool.com/articles/UVnEVj

    英文介绍:https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

    modernizr-custom.js下载

  • jQuery多版本共存

    直接案例:

    <script src="jquery-1.8.3.min.js"></script>
    <script src="jquery-1.12.2.min.js"></script>
    <script src="jquery-2.2.2.min.js"></script>
    
    
    
     //最后加载的是jquery-2.2.2.min.js,所以$和jQuery都是2.2.2版本
    
    
    // var v2= $.noConflict(); //2.2.2仅仅是放弃$的使用权用v2代替$使用
    // alert(v2().jquery); //这里的v2是2.2.2
    // alert(jQuery().jquery);//这里弹出的是还是2.2.2,因为2.2.2并没有放弃jQuery的使用权,只是放弃$使用而已
    
    ---------------------------------------------------
    
    // var v2= $.noConflict(true); //2.2.2不仅放弃了$使用权还是放弃了jQuery使用权,所以要用2.2.2只能是v2来调用了
    // alert($().jquery); //此时的$和jQuery就是1.12.2
    // alert(jQuery().jquery);
    
    ----------------------------------------------------
    
     var v2= $.noConflict(true); //2.2.2不仅放弃了$使用权还是放弃了jQuery使用权,所以要用2.2.2只能是v2来调用了
     //alert($().jquery); //此时的$和jQuery就是1.12.2
     //alert(jQuery().jquery);
     var v1_2= $.noConflict(); //1.12.2放弃了$使用权,但是jQuery还可以使用
     alert(jQuery().jquery); //jQuery代表1.12.2
     alert($().jquery); //$ 2.2.2和1.12.2都不使用了,$就代表了1.8.3
    
     // v2 代表2.2.2
     // jQuery 代表1.12.2
     // $ 代表1.8.3
    
    
    
    

     

     

     

  • jquery低版本兼容辅助插件—jquery-migrate-1.3.0.js

    jquery 移植老版本功能到新插件 辅助 兼容

    在使用jQuery 1.9+的时候之前会有些方法被抛弃,导致一些项目无法运行,为了兼容要找回之前被放弃的方法。

    //在jQuery紧接后面引用jquery-migrate-1.3.0.js
    
    <script src="http://code.jquery.com/jquery-1.9.0.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.3.0.js"></script>

    插件也就是将1.9版本之前所有被抛弃的方法重新找回。

     

  • koa.js使用handlebars模板

    node koajs koa 模板

    koa_temp1

     

    //package.json进行安装
    npm install

    koa_handlebars

  • nodejs开发工具webstorm

    webstorm nodejs webstorm

    File–Settings–Languages & Frameworks–Node.js and NPM

    node_webstrom1

     

     

    用supervisor当webstorm默认启动测试模块

    webstrom_supervisor

    webstrom_supervisor2

     

     

    皮肤选择:Editor-colors&Fonts-Font

    strom1

     

    Editor–General–Appearance

    strom2

     

    Editor–Code Style

    strom3

     

    File—-Settings—–editer—fileencoding      这样创建的文件默认都是utf8字符集

    webstorm_un

     

     

    激活

    webstrom-active

    http://idea.lanyus.com/  适用于 10.0.3版本

    http://jetbrains.tencent.click/  这个可以激活   适用于2016.2.3版本

    http://idea.ibdyr.com/  最新

    http://idea.iteblog.com/key.php

    http://idea.imsxm.com

     

    支持es6语法

    mac 点击快捷键 command+,

    webstorm_es6