zoukankan      html  css  js  c++  java
  • mootools系列:打造属于你自己的Popup(弹出框)——外观及应用篇


         半透明化弹出框(Popup)边框


         半透明化的边框很眩吧。其实实现起来很简单,只需设置一css属性:opacity。opacity指“不透明度”,取值在0和1之间,0表示全透明,1表示完全不透明。

         在代码中,我将边框的不透明度设置为0.5。

    1 document.id(newCell).setStyle('opacity'0.5);


         弹出框(Popup)的淡入淡出效果


         知道了不透明度opacity这一css属性,相应的使弹出框的该属性值在0与1之间有一个渐变的过程,即为淡入。反之为淡出。

         在这里应用mootools中可控制任意css属性在两值之间过渡的tween类。

    1 this.popupTable['tween']('opacity''1');

         关闭弹出框时,我们需将其销毁。结合淡出效果,这个销毁的动作应发生在淡出效果完成时。代码如下:

    1 tween: {
    2     onComplete: function () {
    3         if (this.popupTable.getStyle('opacity'== 0)
    4             this._cleanUp();
    5     }.bind(this)
    6 }


         变身为alert


         javascript中alert函数的功能仅仅是简单的提示、告之。基于当前自定义弹出框已经具有的功能,是很容易实现的。

     1 function openAlert() {
     2     var newP = new iSunPopup({  380, height: 150, title: 'iSun alert', content: 'iSun alert content',         buttons: [
     3                 {
     4                     text: 'Yes',
     5                     clickHandler: function () {
     6                         this.close();
     7                     }
     8                 }]
     9     });
    10 
    11     newP.open();
    12 }

         变身为confirm


          javascript中的confirm函数较alert复杂。在应用中,用户可以选择confirm()的Yes或No,然后代码做出相应的处理。这一选择过程是运行阻塞的,javascript运行时停滞在这个地方来等待用户的处理。

         然而我们自定义的弹出框无法阻塞javascript运行,也就是说无法通过相同的机制来实现confirm效果。

         正面冲锋不成,就只能小路包抄了。

         弹出框中按钮单击事件代码是自定义的,我们只需将用户选择Yes或No的处理过程直接定义在按钮事件中也就模拟出了“确认”的效果。

     1 function openConfirm() {
     2     var newP = new iSunPopup({  380, height: 150, title: 'iSun confirm', content: 'iSun confirm content',         buttons: [
     3                 {
     4                     text: 'No',
     5                     clickHandler: function () {
     6                         alert('你点击了No,此处可编写No逻辑。');
     7                         this.close();
     8                     }
     9                 },
    10                 {
    11                     text: 'Yes',
    12                     clickHandler: function () {
    13                         alert('你点击了Yes,此处可编写Yes逻辑。');
    14                         this.close();
    15                     }
    16                 }]
    17     });
    18 
    19     newP.open();
    20 }


         附示例代码:iSunPopup.rar

          相关文章:

         mootools系列:打造属于你自己的Popup(弹出框)——基本结构篇

         mootools系列:打造属于你自己的Popup(弹出框)——扩展功能篇

  • 相关阅读:
    JQuery性能优化
    分页控件X.PagedList.Mvc
    《转》sql 、linq、lambda 查询语句的区别
    Linq的连表查询
    MVC页面直接F5出错
    详解集合
    Json的序列化与反序列化
    《转》dbcontext函数
    《转》jquery中的$.ajax的success与error
    cocos creator基础-(二十七)httpclient Get POST
  • 原文地址:https://www.cnblogs.com/isun/p/2049099.html
Copyright © 2011-2022 走看看