使用jquery封装一个可以复用的提示框

首先在html中

<div class="backcap">
    <div class="diolag">
        <div class="diolag-div">
            <img class="diolag-icon" src="{{ basePath }}/img/solution/app/close.png">
            <div class="img">
                <img />
            </div>
            <h3 class="diolag-title"></h3>
            <p class="diolag-content"></p>
            <button type="button" class="diolag-close">确定</button>
        </div>
    </div>
  </div>

在script标签中

 $(".backcap").hide()
        //弹框时,每次整个页面变暗一点
       //设置.backcap类名的元素显示,css样式见下文
        var changeBack = function (){
            $(".backcap").show()
        }
      //设置.backcap类名的元素不显示,css样式见下文
        var changeCome = function (){
            $(".backcap").hide()
        }
     //设置.diolag 我弹出框消失
        $(".diolag").hide()
    //设置.diolag 中的右侧X点击后,弹出框消失
        $(".diolag .diolag-icon").click(function () {
            $(".diolag").hide()
            changeCome()
        })
 //设置.diolag 中的下面的按钮点击后,弹出框消失
        $(".diolag .diolag-close").click(function () {
            $(".diolag").hide()
            changeCome()
        })

 //当我点击.submit的时候,先验证正则
 $(".submit").click(function (){
            // 获取正则手机号的数据
            let contentData = $("#content").val()
            let mobileData = $("#mobile").val()
            let patt1=new RegExp("^1\\d{10}$")

            //获取页面高度的方法
            var getHeight = function (){
                let _width = document.documentElement.clientWidth; //屏幕宽
                let _height = document.documentElement.clientHeight; //屏幕高
                let boxWidth = 580;//正常不应该写死的,由于需要我这里写死了
                let boxHeight = 330;//正常不应该写死的,由于需要我这里写死了
                // console.log(boxWidth,_width,_height)
                $(".diolag").show();
                $(".diolag .diolag-div").css({
                    "left": (_width - boxWidth) / 2 + `px`,
                    "top": (_height - boxHeight) / 2 + `px`
                })
            }

            //信息有误的时候
            var getFail = function (){
                changeBack()
                console.log(‘tel is wrong‘)
                //这是电话有误
                $(‘.diolag .diolag-title‘).text("提交失败!").css({"font-size": "18px", "color": "#3b426b","font-weight":"400"})
                $(‘.diolag .img img‘).attr("src", "{{ basePath }}/img/solution/app/fail.png");
                $(‘.diolag .diolag-content‘).text("老板, 您的手机号码填写有误,请确认填写正确后再提交一次吧!").css({
                    "font-size": "14px",
                    "color": "#7d88a2",
                    "line-height": "28px",
                    "margin-top": "160px"
                })
            }
            // 提交成功时
            var getSucess = function (){
                changeBack()
                console.log(‘success‘)
                $(‘.diolag .diolag-title‘).text("提交成功!").css({"font-size": "18px", "color": "#3b426b","font-weight":"400"})
                $(‘.diolag .img img‘).attr("src", "{{ basePath }}/img/solution/app/success.png");
                $(‘.diolag .diolag-content‘).text("老板, 您的信息已提交成功, 保持预留手机的通畅,  我们将尽快与您取得联系哦!").css({
                    "font-size": "14px",
                    "color": "#7d88a2",
                    "line-height": "28px",
                    "margin-top": "160px"
                })
            }
            // 重复提交时
            var getAgain = function (){
                changeBack()
                console.log(‘getagain‘)
                $(‘.diolag .diolag-title‘).text("重复提交!").css({"font-size": "18px", "color": "#3b426b","font-weight":"400"})
                $(‘.diolag .img img‘).attr("src", "{{ basePath }}/img/solution/app/fail.png");
                $(‘.diolag .diolag-content‘).text("老板, 您的信息已提交过啦, 请勿重复提交哦!").css({
                    "font-size": "14px",
                    "color": "#7d88a2",
                    "line-height": "28px",
                    "margin-top": "160px"
                })
            }
            // 没有填写内容
            var getNocont = function (){
                changeBack()
                console.log(‘getNocont‘)
                $(‘.diolag .diolag-title‘).text("提交失败!").css({"font-size": "18px", "color": "#3b426b","font-weight":"400"})
                $(‘.diolag .img img‘).attr("src", "{{ basePath }}/img/solution/app/fail.png");
                $(‘.diolag .diolag-content‘).text("老板,您的需求信息还没有填写,请填写完整再提交哦!").css({
                    "font-size": "14px",
                    "color": "#7d88a2",
                    "line-height": "28px",
                    "margin-top": "160px"
                })
            }
            let lock = true

            getHeight()
            if(!patt1.test(mobileData)){
                //执行电话有误的事件
                getFail()
            }else {
                let subData = {
                    content: contentData,
                    mobile: mobileData,
                    type: 100
                }
                //这是成功的
                if(lock){
                    lock = false
                    //发送请求
                    $.ajax({
                        type:"POST",
                        url:"请求地址",
                        data:subData,
                        success:function(msg){
                            if(msg.error == "0"){
                                getSucess()
                            }else if(msg.error=="-1"){
                                getNocont()
                            }
                        }
                    })
                }

            }
        })

 css样式

.solution-app .backcap{
    background: rgba(0,0,0,0.5);
    position:fixed;
    width:100%;
    height:1200px;
    z-index:160;
    top:0px;
}

.solution-app .diolag{
    height:330px;
    position: relative;
    text-align: center;
    float:left;

}

.solution-app .diolag-div{
    position: fixed;
    z-index:200;
    width:580px;
    height:330px;
    padding:16px 134px;
    box-sizing: border-box;

    border-radius: 10px;
    background: white;
}

.solution-app .img {
    position: absolute;
    text-align: center;
    margin:18px auto;
    margin-bottom: 16px;
    left:245px;

}
.solution-app .diolag .diolag-icon{
    position:absolute;
    right:18px;
    width:30px;
    height:30px;
    top:18px;
    color:#d0d0d0;
}
.solution-app .diolag .diolag-close{
    height:40px;
    width:100px;
    color:#fff;
    font-size:14px;
    margin-top: 24px;
    background: #599bff;
    border-radius: 4px;
    cursor: pointer;
}
.solution-app .diolag-title{
    position: absolute;
    margin:0 auto;
    left:250px;
    top:140px;
}

  

原文地址:https://www.cnblogs.com/JiAyInNnNn/p/11130278.html

时间: 2024-10-08 14:34:45

使用jquery封装一个可以复用的提示框的相关文章

基于Jquery 简单实用的弹出提示框

引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间自己写了个弹出效果,放到项目上去发现效果还不错,这里贴出来,做个备忘,有需要的同学可以拿去,也可以作为一个参考. 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

使用element-ui二次封装一个可复用弹窗组件

源码链接:可复用弹窗组件 组件: <template> <transition name="el-fade-in"> <div v-if="modalCfg.visible" style="width:100%;height:100%;position:fixed;top:0px;left:0px;z-index:8;"> <!-- 遮罩 --> <div class="ces-ma

使用element-ui二次封装一个可复用编辑表单组件

源码:可复用表单组件 组件代码: <!-- 搜索表单 --> <template> <el-form ref='editForm' :size="size" inline :label-width="labelWidth" :model="editData" :rules="editRules"> <el-form-item v-for='item in editCfg' :label

jquery实现一个简单的弹出框

自己改写一些jquery的部分代码,自己总结出来一个比较好用的jquery弹出框,留着以后工作时候再用.喜欢就拿走吧! 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999

css画一个提示框

用css画一个如下图的提示框: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .dialog{ display:inline-block; padding:10px; border-radius: 4px; z-index: 2000;

UWP中的消息提示框(一)

不管什么平台,应用内难免会出现一些消息提示框,下面就来聊聊我在UWP里用到的消息提示框. 弹窗也可按是否需要用户操作促发一些逻辑进行分为两大类. 不需要用户干涉的一类: MessageDialog:操作简单,写起来也省事,想具体了解的请参考MSDN 先看看效果 PC上效果: mobile上效果: 再看看代码(●'?'●) 前台: <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" >

利用before、after制作提示框

提示框由两部分组成,框+箭头,箭头则利用伪元素before.after写成. 根据提示框的样式可以看出,上面的箭头由两部分组成:灰色大箭头+蓝色小箭头,蓝色嵌套在灰色里面,于是箭头就有了边框,整体搭配起来也比较好看. 那么这部分是怎么写的呢? 首先把箭头以外的部分写出来,下面是html代码以及它的css样式: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>

CSS基础教程——纯CSS开发的气泡式提示框

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:CSS基础教程 —— 纯CSS开发的气泡式提示框 作为前端开发人员,我们都熟悉使用CSS来生成页面上丰富的样式,对于边框border属性来说,也是我们最熟悉不过的CSS属性,今天我们这里将介绍如何使用纯CSS来生成一个气泡式样的提示框,希望大家喜欢! 在这篇文章中我们将使用:after伪标签来生成提示框的指示箭头. 首先我们定义提示框相关属性,我们添加了box阴影和文字阴影效果,这样让提示框更加漂亮: /* bubble */.tip

基于Zepto的Alert提示框开源框架Tiny-Alert

项目主页:http://shootyou.github.io/Tiny-Alert/ 什么是Tiny-Alert? 这是一个基于Zepto的提示框插件,在移动端使用会有更好的效果.它被设计成是移动端原生alert和confirm提示框的更美观替代品.同时它还实现了一个loading效果.它的核心代码参考了rDailog,在它基础上适配了zepto,去掉了移动端用不到的特性,另外让它看上去更美观了. 它有如下特性: 轻量级,代码量不超过300行,压缩后仅2k. 基于zepto更适合移动端. 支持回