zoukankan      html  css  js  c++  java
  • YUI 阻止动态css加载

    skinnable动态加载

    在YUI Module中,经常采用skinnable参数来动态加载css,如:

    YUI().use('w-paginator', function(Y) {
    }, required: [], skinnable: true);

    YUI Config中配置的参数如

    skin: {
        defaultSkin: 'sam',
        base: 'assets/skins/'
    }

    非override情况下,默认的css模块的加载路径和模块名称为:

    SKIN_PREFIX = 'skin-';
     
    name: SKIN_PREFIX + {skin.defaultSkin} + '-'  + {modname} 
    path: {modname}/{skin.base}/{skin.defaultSkin}/{modname}.css 

    判断是否加载成功

    • 判断YUI.Env._cssLoaded[name]中是否已经存在
    • 判断cssStampEl元素在当前文档中的display属性是否为none
      • 在加载css的过程中,会将模块名作为className放到cssStampEl上, 判断display属性后在移除className
    isCSSLoaded: function(name, skip) {
           //TODO - Make this call a batching call with name being an array
           if (!name || !YUI.Env.cssStampEl || (!skip && this.ignoreRegistered)) {
               return false;
           }
           var el = YUI.Env.cssStampEl,
               ret = false,
               mod = YUI.Env._cssLoaded[name],
               style = el.currentStyle; //IE
     
           if (mod !== undefined) {
               return mod;
           }
           //Add the classname to the element
           el.className = name;
           if (!style) {
               style = Y.config.doc.defaultView.getComputedStyle(el, null);
           }
           if (style && style.display === 'none') {
               ret = true;
           }
     
           el.className = ''; //Reset the classname to ''
           YUI.Env._cssLoaded[name] = ret;
           return ret;
       },
    

      

    阻止CSS自动加载

    由于在动态加载css过程中,会将模块的名称作为className加到cssStampEl上,可以直接使用id和模块名的组合方式,设置cssStampEl元素的display即可做到阻止动态加载模块的css

    #yui3-css-stamp.skin-sam-w-table-editable { display:none }

    应用场景

    当应用层不需要组件层提供默认样式的时候,就可以通过这种方式来阻止Loader动态加载默认的css。 

  • 相关阅读:
    Flink实例(四十七):状态管理(十一)自定义操作符状态(五)广播状态(Broadcast state)(三)
    Flink实例(四十六): Operators(七)多流转换算子(二)CONNECT, COMAP和COFLATMAP
    python题库
    python---replace函数
    算法图解--读书笔记
    python里的StringIO
    python通过sha1和base64生成签名
    python调用接口方式
    智能停车场车牌识别系统【python】
    leetcode 查找算法(三)
  • 原文地址:https://www.cnblogs.com/mininice/p/4298947.html
Copyright © 2011-2022 走看看