prototype学习笔记(遮罩问题)

前面把prototype的相关API都研究了,代码也粗略地通读了一下,许多地方未及深究。这儿来使用使用。

  一、写个遮住整个页面的遮罩

  var ele=new Element("div",{id:"msg2"});
  ele.setStyle({
    position:"absolute",
    backgroundColor:"#000",
    width:document.viewport.getWidth()+"px",
    height:document.viewport.getHeight()+"px",
    left:document.viewport.getScrollOffsets().left+"px",
    top:document.viewport.getScrollOffsets().top+"px"});
  ele.setOpacity(0.5);
  $(document.body).insert(ele);

  这儿的关键就是要用到document.viewport。求出视区的左上角坐标、宽度、高度。然后就是设置了,关于遮罩的颜色,设黑色,然后把透明度设成半透明即可。这个效果刚刚好。

  另外要说一下,prototype不像ExtJs一样封装了setWidth、setHeight等函数,要设置,都要用setStyle函数,或者直接调用dom的属性来设置。

  二、写个遮住指定元素的遮罩

  上面是遮住整个视区,现在只是要遮住某一个元素,这个功能在ExtJs中提供了,叫mask。以下代码在IE8、FireFox下面通过,考虑了有边框的情况。

  var ele=new Element("div",{id:"msg2"});
  ele.setStyle({
    position:"absolute",
    backgroundColor:"#000",
    width:$("msg1").getWidth()+"px",
    height:$("msg1").getHeight()+"px",
    left:$("msg1").cumulativeOffset().left+"px",
    top:$("msg1").cumulativeOffset().top+"px"});
  ele.setOpacity(0.5);
  $(document.body).insert(ele);

  三、写个遮罩类

  综合上面的代码,本人花了一个上午的时间写了个Mask类,它只提供两个函数:mask(options)、unmask(),可为整个文档搞个遮罩,也可以为某个指定的元素搞个遮罩。当真如意随心呐。这个代码呢?我就不公开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值