简析 Ext.Element.mask()

mask : function () {}

Puts a mask over this element to disable user interaction. Requires core.css.
This method can only be applied to elements which accept child nodes.

 

只有该元素能够添加子元素时,才能够调用mask成功也就是说,一般只有块状元素才能有遮罩层。

 

mask: function (msg, msgCls) {
    //如果当前元素没有定位 则要定位 ,因为灰色mask层要相对当前元素绝对定位 0,0
    if (this.getStyle("position") == "static") {
        this.addClass("x-masked-relative");
    }
    //mask 文字信息
    if (this._maskMsg) {
        this._maskMsg.remove();
    }
    //mask 层
    if (this._mask) {
        this._mask.remove();
    }、
    //创建mask层
    this._mask = Ext.DomHelper.append(this.dom, {
        cls: "ext-el-mask"
    },
    true);
    /*

          绝对定位 
          absolute
           top 0 left 0
            z-index:9999
          目的是要遮住当前元素
        */
    this.addClass("x-masked");
    this._mask.setDisplayed(true);
    /*
            同理设置遮蔽文字  并调用center相对当前元素中 ,center() TODO 简析
       */
    if (typeof msg == 'string') {
        this._maskMsg = Ext.DomHelper.append(this.dom, {
            cls: "ext-el-mask-msg",
            cn: {
                tag: 'div'
            }
        },
        true);
        var mm = this._maskMsg;
        mm.dom.className = msgCls ? "ext-el-mask-msg " + msgCls : "ext-el-mask-msg";
        mm.dom.firstChild.innerHTML = msg;
        mm.setDisplayed(true);
        mm.center(this);
    }
    //设置 mask层 大小 刚好覆盖住 当前元素 ,在当前元素之上
    if (Ext.isIE && !(Ext.isIE7 && Ext.isStrict) && this.getStyle('height') == 'auto') { // ie will not expand full height automatically
        this._mask.setSize(this.getWidth(), this.getHeight());
    }
    return this._mask;
},
 

     这是对一般元素的 mask ,但是遇到要 mask的是 body 时就会有问题了 ,所以ext里没 Ext.getBody().mask(),而是单独处理了,参见 Ext.window.show(), 下次解析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值