.Net中怎么实现前端对话框和消息框
创始人
2024-11-28 10:43:36
0次

画一个简单的模型框


    系统提示
         
                       

添上基本的样式

div.hi-dialog-box {
      border: 1px #808080 solid;
      width: 350px;
      height: 200px;          
      border-radius: 3px;
    }
      div.hi-dialog-box div.hi-dialog-title {
        border: 1px #808080 solid;
        margin: 1px;
        padding: 1px;
        background-color: #dedcdc;
        height: 14%;
        cursor: move;
        font-size: 20px;
      }
      div.hi-dialog-box div.hi-dialog-content {
        height: 65%;
        margin: 5px;      
      }
      div.hi-dialog-box div.hi-dialog-foot {
        margin: 1px;
        padding: 1px;
        height: 14%;
      }
        div.hi-dialog-box div.hi-dialog-foot input {
          float: right;
          margin-left: 5px;
          font-size: 16px;
        }

效果图:

.Net中怎么实现前端对话框和消息框

是不是像那么回事了,不过现在还不能拖动。拖动,说白了就是在鼠标移动的时候不停的修改绝对定位。

首先修改以下样式:

.Net中怎么实现前端对话框和消息框

用js代码实现拖动效果:

//鼠标按下时
    $("div.hi-dialog-title").mousedown(function (event) {
      $("html").unbind();//首先清除事件方法
      var click_clientX = event.clientX;//记录鼠标按下时相对当前窗口的 x 坐标
      var click_clientY = event.clientY;//记录鼠标按下时相对当前窗口的 y 坐标
      //取的对话框容器
      var dialogBox = $(this).closest("div.hi-dialog-box");
      //记录对话框容器当前位置
      var dialogBoxX = parseInt($(dialogBox).css("left"));
      var dialogBoxY = parseInt($(dialogBox).css("top"));
      //鼠标移动时
      $("html").mousemove(dialog_mousemove = function (event) {
        //鼠标按下后移动量加上原来的位置
        var top = event.clientY - click_clientY + dialogBoxY;
        var left = event.clientX - click_clientX + dialogBoxX;
        //修改对话框位置(这里就实现了移动效果了)
        $(dialogBox).css({ "left": left, "top": top });
      });
      //鼠标按键松开时
      $("html").mouseup(function () {
        //清除鼠标移动事件
        $("html").unbind("mousemove", dialog_mousemove);
      });
    });

以上js代码就实现了对话框的拖动效果。首先,只有当鼠标在对话框标题区域按下鼠标才可以拖动,然后鼠标移动的的时候实时计算和改变容器的位置,最后如果鼠标按键松开这清除鼠标移动事件。

.Net中怎么实现前端对话框和消息框

点击按钮后可回调

很多时候,我们点击确定或取消的时候我们需要执行回调(比如“您是否删除”,点击了确定后肯定需要做删除操作)。

.Net中怎么实现前端对话框和消息框

如此,我们点击确定的时候会自动关闭对话框并可以执行自己需要执行的一些操作。可以,有同学会说,你这算什么狗屁对话框啊,html代码全都需要直接编码。是的,这只是简单的说下思路,下面我们来简单整理下。

.Net中怎么实现前端对话框和消息框

效果图:

.Net中怎么实现前端对话框和消息框

全部代码:(当然,这只是简单实现。还有很多需要继续细化的效果,如:背景遮罩、如果实现点击多次对话框)




  
  
  
    * {
      box-sizing: border-box;
    }
    .clearfix:after {
      content: ' ';
      display: table;
      clear: both;
    }
    .clearfix {
      *zoom: 1;
    }
    div.hi-dialog-box {
      border: 1px #808080 solid;
      width: 350px;
      height: 200px;
      position: absolute;
      top: 200px;
      left: 40%;
      border-radius: 3px;
    }
      div.hi-dialog-box div.hi-dialog-title {
        border: 1px #808080 solid;
        margin: 1px;
        padding: 1px;
        background-color: #dedcdc;
        height: 14%;
        cursor: move;
        font-size: 20px;
      }
      div.hi-dialog-box div.hi-dialog-content {
        height: 65%;
        margin: 5px;
        overflow: auto;
      }
      div.hi-dialog-box div.hi-dialog-foot {
        margin: 1px;
        padding: 1px;
        height: 14%;
      }
        div.hi-dialog-box div.hi-dialog-foot input {
          float: right;
          margin-left: 5px;
          font-size: 16px;
        }
  


  
  
  
          var hiDialog = {       init: function (title, messg, determineCallback, cancelCallback) {         title = title || "系统提示";         var determine = "", cancel = "";         if (typeof (determineCallback) == "function")           determine = '';         if (typeof (cancelCallback) == "function")           cancel = '';         if (!$("div.hi-dialog-box").length) {           var hi_dialog_box = '\                   
\                   \                   
\                   \                   
\                 
';           $("body").append(hi_dialog_box);         }         var $box = $("div.hi-dialog-box");         $box.find("div.hi-dialog-title").html(title);         $box.find("div.hi-dialog-content").html(messg);         $box.find("div.hi-dialog-foot").html(determine + cancel);         $("div.hi-dialog-box").show();         $box.find(".hi-dialog-determine").click(function () {           determineCallback();           hiDialog.close();         });         $box.find(".hi-dialog-cancel").click(function () {           cancelCallback();           hiDialog.close();         });         //鼠标按下时         $("div.hi-dialog-title").mousedown(function (event) {           $("html").unbind();           var click_clientX = event.clientX;           var click_clientY = event.clientY;           var dialogBox = $(this).closest("div.hi-dialog-box");           var dialogBoxX = parseInt($(dialogBox).css("left"));           var dialogBoxY = parseInt($(dialogBox).css("top"));           //鼠标移动时           $("html").mousemove(dialog_mousemove = function (event) {             var top = event.clientY - click_clientY + dialogBoxY;             var left = event.clientX - click_clientX + dialogBoxX;             $(dialogBox).css({ "left": left, "top": top });           });           //鼠标按键松开时           $("html").mouseup(function () {             $("html").unbind("mousemove", dialog_mousemove);           });         });       },       close: function () {         $("div.hi-dialog-box").hide();       }     }           function click1() {       hiDialog.init("系统提示!", "测试", function () {         //点击确定后的回调执行         $(".messg").text("点击了确定");       });     }     function click2() {       hiDialog.init("系统对话框~~", "什么乱七八糟的啊...", function () {         $(".messg").text("点击了确定~~~");       }, function () {         $(".messg").text("点击了取消~~");       });     }   

消息框

要求:自动定时关闭消息框、有消息分类(如:警告、错误、成功等)

画一个简单的模型框


    
    你不爱我了~~
  

添上基本样式


    div.hi-message-box {
      padding: 10px;
      padding-top: 15px;
      padding-bottom: 20px;
      background-color: #aee0c1;     
      min-width: 200px;
      max-width: 500px;
      font-size: 19px;
      border-radius: 3px;
    }
 

效果图:

.Net中怎么实现前端对话框和消息框

看上去是不是很简单呢?下面我们给它加上定时关闭消息功能。

定时关闭消息(表骂我,就是这么简单。我也想写复杂的。)

复制代码 代码如下:

setTimeout(function () { $("div.hi-message-box").fadeOut("slow");}, 1200);

效果图:

.Net中怎么实现前端对话框和消息框

加上消息类型(其实就是根据参数加不同的图片而已)

setTimeout(function () {
      $("div.hi-message-box").fadeOut("slow");
}, 1200);

效果图:

.Net中怎么实现前端对话框和消息框

加上图标是不是更像那么回事了?

如上,我们同样需要稍微整理下实现代码:

.Net中怎么实现前端对话框和消息框

效果图:

.Net中怎么实现前端对话框和消息框

全部代码:(同样,消息框也只是进行了简单实现。还有太多没有考虑,如(参数定位消息框位置、设置定时关闭时间、多次触发消息框))




  
  
  
    * {
      box-sizing: border-box;
    }
    .clearfix:after {
      content: ' ';
      display: table;
      clear: both;
    }
    .clearfix {
      *zoom: 1;
    }
    div.hi-message-box {
      padding: 10px;
      padding-top: 15px;
      padding-bottom: 20px;
      background-color: #aee0c1;
      position: absolute;
      min-width: 200px;
      max-width: 500px;
      font-size: 19px;
      border-radius: 3px;
      top:200px;
      left:45%;
    }
      div.hi-message-box img {
        vertical-align: bottom;
      }
  


  
  
  
  
  
    var hiMessageBox = {
      init: function (type, messg) {
        var hiMessageBox = '\
                  \
                  \
                
';         if (!$("div.hi-message-box").length) {           $("body").append(hiMessageBox);         }         var $box = $("div.hi-message-box");         $box.find(".hi-message-messg").text(messg);         switch (type) {           case 0://success 成功             $box.find("img.hi-message-type").attr("src", "imgs/Tick_24px.png")             break;           case 1://warn 警告             $box.find("img.hi-message-type").attr("src", "imgs/Warning_24px.png")             break;           case 2://             $box.find("img.hi-message-type").attr("src", "imgs/Delete_24px.png")             break;         }         $("div.hi-message-box").fadeIn("slow")         setTimeout(function () {           $("div.hi-message-box").fadeOut("slow");         }, 1200);       },       success: function (messg) {         this.init(0, messg);        },       warn: function (messg) {         this.init(1, messg);       },       error: function (messg) {         this.init(2, messg);       }     };              function success() {       hiMessageBox.success("成功");     }     function error() {       hiMessageBox.error("失败");     }     function warn() {       hiMessageBox.warn("警告");     }   

上一篇:怎么在win10系统中部署一个ASP.NET Core环境

下一篇:asp.net GridView中如何使用RadioButton单选按钮

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...