zoukankan      html  css  js  c++  java
  • 弹窗提示插件(全局提示弹窗)

        弹窗可以说是每个项目都会用到的一个东西,弹窗有很多种,有系统默认的,网上也有一堆插件。默认的弹窗一般不好看,都会被设计嫌弃的,如果用插件的话,又比较占资源空间,所有我开发的项目一般都是自己封装全局同用插件的,下面来细说一下这些弹窗的用法。

    系统默认的有这3种常用的

    //弹出对话框并输出一段提示信息  
    function ale() {  
        //弹出一个对话框  
        alert("提示信息!"); 
    } 
    //弹出一个询问框,有确定和取消按钮  
    function firm() {  
        //利用对话框返回的值 (true 或者 false)  
        if (confirm("你确定提交吗?")) {  
            alert("点击了确定");  
        }  
        else {  
            alert("点击了取消");  
        }  
    
    }  
    
    //弹出一个输入框,输入一段文字,可以提交  
    function prom() {  
        var name = prompt("请输入您的名字", ""); //将输入的内容赋给变量 name 
        
        //这里需要注意的是,prompt有两个参数,前面是提示的话,后面是当对话框出来后,在对话框里的默认值  
        if (name)//如果返回的有内容  
        {  
            alert("欢迎您:" + name)  
        }
    } 

    网上的插件也有好几个不错的插件,我个人用得比较多的就是layer,使用起来也很方便。大家可以去官网看看

    //初体验
    
    layer.alert('内容')
    //第三方扩展皮肤
    
    layer.alert('内容', {
      icon: 1,
      skin: 'layer-ext-moon' //该皮肤由layer.seaning.com友情扩展。关于皮肤的扩展规则,去这里查阅
    })
    //询问框
    
    layer.confirm('您是如何看待前端开发?', {
      btn: ['重要','奇葩'] //按钮
    }, function(){
      layer.msg('的确很重要', {icon: 1});
    }, function(){
      layer.msg('也可以这样', {
        time: 20000, //20s后自动关闭
        btn: ['明白了', '知道了']
      });
    });
    //提示层
    
    layer.msg('玩命提示中');
    //墨绿深蓝风
    
    layer.alert('墨绿风格,点击确认看深蓝', {
      skin: 'layui-layer-molv' //样式类名
      ,closeBtn: 0
    }, function(){
      layer.alert('偶吧深蓝style', {
        skin: 'layui-layer-lan'
        ,closeBtn: 0
        ,anim: 4 //动画类型
      });
    });
    //捕获页
    
    layer.open({
      type: 1,
      shade: false,
      title: false, //不显示标题
      content: $('.layer_notice'), //捕获的元素,注意:最好该指定的元素要存放在body最外层,否则可能被其它的相对元素所影响
      cancel: function(){
        layer.msg('捕获就是从页面已经存在的元素上,包裹layer的结构', {time: 5000, icon:6});
      }
    });
    //页面层
    
    layer.open({
      type: 1,
      skin: 'layui-layer-rim', //加上边框
      area: ['420px', '240px'], //宽高
      content: 'html内容'
    });
    //自定页
    
    layer.open({
      type: 1,
      skin: 'layui-layer-demo', //样式类名
      closeBtn: 0, //不显示关闭按钮
      anim: 2,
      shadeClose: true, //开启遮罩关闭
      content: '内容'
    });
    //tips层
    
    layer.tips('Hi,我是tips', '吸附元素选择器,如#id');
    //iframe层
    
    layer.open({
      type: 2,
      title: 'layer mobile页',
      shadeClose: true,
      shade: 0.8,
      area: ['380px', '90%'],
      content: 'mobile/' //iframe的url
    }); 
    //iframe窗
    
    layer.open({
      type: 2,
      title: false,
      closeBtn: 0, //不显示关闭按钮
      shade: [0],
      area: ['340px', '215px'],
      offset: 'rb', //右下角弹出
      time: 2000, //2秒后自动关闭
      anim: 2,
      content: ['test/guodu.html', 'no'], //iframe的url,no代表不显示滚动条
      end: function(){ //此处用于演示
        layer.open({
          type: 2,
          title: '很多时候,我们想最大化看,比如像这个页面。',
          shadeClose: true,
          shade: false,
          maxmin: true, //开启最大化最小化按钮
          area: ['893px', '600px'],
          content: '//fly.layui.com/'
        });
      }
    });
    //加载层
    
    var index = layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
    //loading层
    
    var index = layer.load(1, {
      shade: [0.1,'#fff'] //0.1透明度的白色背景
    });
    //小tips
    
    layer.tips('我是另外一个tips,只不过我长得跟之前那位稍有些不一样。', '吸附元素选择器', {
      tips: [1, '#3595CC'],
      time: 4000
    });
    //prompt层
    
    layer.prompt({title: '输入任何口令,并确认', formType: 1}, function(pass, index){
      layer.close(index);
      layer.prompt({title: '随便写点啥,并确认', formType: 2}, function(text, index){
        layer.close(index);
        layer.msg('演示完毕!您的口令:'+ pass +'<br>您最后写下了:'+text);
      });
    });
    //tab层
    
    layer.tab({
      area: ['600px', '300px'],
      tab: [{
        title: 'TAB1', 
        content: '内容1'
      }, {
        title: 'TAB2', 
        content: '内容2'
      }, {
        title: 'TAB3', 
        content: '内容3'
      }]
    });
    //相册层
    
    $.getJSON('test/photos.json?v='+new Date, function(json){
      layer.photos({
        photos: json //格式见API文档手册页
        ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
      });
    });

     下面这个就是我个人封装的一个小小的弹窗对象,大家喜欢可以拿去用

    var GlobalTip = {
      /**
     * 全局提示框  只显示提示内容的弹窗
     * @param {type} message      提示内容
     */
    
      TipMessageBox:function(message,callback_function){
        var timer = null;
        var body = document.getElementsByTagName('body')[0];
        var globalNotice = document.createElement('div');
        globalNotice.id = 'globalNotice';
        if(message.length>11){
          globalNotice.innerHTML = '<p style="line-height:35px;">'+message+'</p><div class="back"></div>';
        }else{
          globalNotice.innerHTML = '<p>'+message+'</p><div class="back"></div>';
        }
        body.appendChild(globalNotice);
        clearInterval(timer);
        timer = setTimeout(function(){
           if($.isFunction(callback_function)){callback_function();}
          document.getElementById('globalNotice').parentNode.removeChild(document.getElementById('globalNotice'));
        },2000)
      },
    
    
      /**
     * 全局选择弹框  有"确定"与"取消"按钮的弹窗
     * @param {type} message           提示内容
     * @param {type} YesMess           右侧按钮提示
     * @param {type} callback_function 回调函数(可选)
     * @param {type} callback_param     回调函数参数,(由于参数个数不定,所以以对象方式传参)(可选)
    
        使用例子:
             GlobalTip.askComfirmTipBox(message,YesMess,callback_function,callback_param); 
             无参数:GlobalTip.askComfirmTipBox('提示消息内容','确定',回调函数);
    
             有参数:var param = {"one":'参数1','two':'参数二'}
                     GlobalTip.askComfirmTipBox('请选取裁剪图片范围','确定',回调函数,param);
     */
    
      askComfirmTipBox:function(message,YesMess){
        var callback_function = arguments[2];
        var callback_param = arguments[3]?arguments[3]:false;
        var body = document.getElementsByTagName('body')[0];
        var globaComfirmTipBox = document.createElement('div');
        globaComfirmTipBox.id = 'ComfirmTipBox';
        globaComfirmTipBox.innerHTML = '<h3><span>提示</span><i onclick="GlobalTip.close()"></i></h3><p>'+message+'</p><p><a id="askComfirmTipbtn0" onclick="GlobalTip.close()" href="javascript:;;">取消</a><a id="askComfirmTipbtn1" onclick="GlobalTip.close()" class="ComfirmTipBox_ok" href="javascript:;;">'+YesMess+'</a></p>';
        var grayBox = document.createElement('div');
        grayBox.id = 'globalgrayBox';
        body.appendChild(globaComfirmTipBox);
        body.appendChild(grayBox);
        $('#askComfirmTipbtn1').click(function(){
            if($.isFunction(callback_function)) {
                if(callback_param != false ){
                  callback_function(callback_param);
                  return ;
                }
                callback_function();
            }
        })
      },
    
        /**
     * 全局选择弹框  只有一个"确定"按钮的弹窗
     * @param {type} message      提示内容(必填)
     * @param {type} YesMess      右侧按钮提示(必填)
     * @param {type} callback_function 回调函数名称(可选)
     * @returns {undefined}
     */
      WarningTipBox:function(message,YesMess){
        var callback_function = arguments[2];
        var callback_param = arguments[3]?arguments[3]:false;
        var body = document.getElementsByTagName('body')[0];
        var globaComfirmTipBox = document.createElement('div');
        globaComfirmTipBox.id = 'ComfirmTipBox';
        globaComfirmTipBox.innerHTML = '<h3><span>提示</span><i onclick="GlobalTip.close()"></i></h3><p>'+message+'</p><p><a onclick="GlobalTip.close()" id="askComfirmTipbtn1" class="ComfirmTipBox_ok" href="javascript:;;">'+YesMess+'</a></p>';
        var grayBox = document.createElement('div');
        grayBox.id = 'globalgrayBox';
        body.appendChild(globaComfirmTipBox);
        body.appendChild(grayBox);
        $('#askComfirmTipbtn1').click(function(){
            if($.isFunction(callback_function)) {
                if(callback_param != false ){
                  callback_function(callback_param);
                  return ;
                }
                callback_function();
            }
        })
      },
    
      /*关闭弹窗*/
      close:function(){
         document.getElementById('ComfirmTipBox').parentNode.removeChild(document.getElementById('ComfirmTipBox'));
         document.getElementById('globalgrayBox').parentNode.removeChild(document.getElementById('globalgrayBox'));
      }

    }



    //css样式

    /*----------------------------------------------- 通用弹框 -------------------------------------*/
    #globalNotice{position: fixed;padding:10px; 180px;height: 70px;top:40%;left: 50%;margin-left: -100px;margin-top: -45px;z-index: 999;border-radius: 2px;}
    #globalNotice p{position: absolute;top:10px;left: 10px; 180px;height: 70px;line-height: 70px;font-size: 16px;color: #fff;text-align: center;z-index: 1001;overflow: hidden;}
    #globalNotice div.back{position: absolute;top:0;left: 0; 200px;height: 90px;z-index: 1000;background: #000;opacity: 0.75;filter:alpha(opacity=75);transition:all 0.5s ease-out 0s;

         -moz-transition:all 0.5s ease-out 0s;-webkit-transition:all 0.5s ease-out 0s;-o-transition:all 0.5s ease-out 0s;}
    #ComfirmTipBox{position: fixed; 270px;/*height: 160px;*/top:40%;left: 50%;margin-left: -135px;margin-top: -80px;z-index: 999;background: #fff;padding-bottom: 20px;}
    #ComfirmTipBox h3{height:40px;line-height: 40px;font-size: 14px;color: #333;border-bottom: 1px solid #f2f2f2;padding-left: 17px;}
    #ComfirmTipBox h3 i{ 40px;height: 40px;float: right;background: url(../images/popup_guanbi.png) no-repeat 0px 13px;cursor: pointer;background-size:30px 60px; }
    #ComfirmTipBox p{font-size: 16px;color: #333;text-align: center;/*height: 64px;*/line-height: 30px;padding-top: 15px;}
    #ComfirmTipBox p a{display: inline-block;margin:0 25px; 80px;height: 32px;line-height: 32px;text-align: center;color:#fff;font-size: 14px;background: #b3b3b3;border-radius: 2px; }
    #ComfirmTipBox p a.ComfirmTipBox_ok{background: #34c5c7;}
    #globalgrayBox{position: fixed;top:0;left: 0; 100%;height: 100%;z-index: 998;background: #000;opacity: .5;-moz-opacity:0.5;-webkit-opacity:0.5;-o-opacity:0.5; filter:alpha(opacity=50);}

     

    谢谢阅读,如果能帮到您,请帮忙顶一个,当然喜欢的可以收藏一下,谢谢!~( ̄▽ ̄~)(~ ̄▽ ̄)~

    注:转发请注明出处

  • 相关阅读:
    javaScript类型和对象
    极客时间买课全额返现
    极客时间返利课程返利文字版
    负责范围
    list查询
    缺件修改
    修改信息
    Windows系统解决占用端口问题
    mysql系列——常用的几十个函数详解(六)
    史上最全日期时间类讲解
  • 原文地址:https://www.cnblogs.com/XieMay/p/8126089.html
Copyright © 2011-2022 走看看