最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

自己使用js/jquery写的一个定制对话框控件_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 21:22:35
文档

自己使用js/jquery写的一个定制对话框控件_javascript技巧

自己使用js/jquery写的一个定制对话框控件_javascript技巧:最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中
推荐度:
导读自己使用js/jquery写的一个定制对话框控件_javascript技巧:最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中
最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中。

先贴出主要代码:
代码如下:
//对话框的基本html内容,绝对定位,高宽设置,背景图片,标题,两个按钮图
var tdlz_dialog_content = "+ "' style='position:absolute;text-align:center;width:540px;height:331px;background:url(assets/images/add_fbc.png);'>

  • "
    + "
  • ";
    //text:标题,type:对话框类型,funcOK:确定的执行函数,time:倒计时或alert显示的时间
    function showTdDialog(text, type, funcOK, time) {
    var dialogid = "#tdlz_dialog";
    $(dialogid).show(500);
    $("#dialog_lb_text").html(text);
    switch (type) {
    case "show"://展示信息的对话框,带一个确定键,点击后消失
    $("#tdlz_dialog_cancel").hide();
    $("#tdlz_dialog_ok").unbind();
    $("#tdlz_dialog_ok").click(function () {
    $(dialogid).hide(500);
    $("#tdlz_dialog_ok").css("margin-right", "0");
    $("#tdlz_dialog_cancel").css("margin-left", "0");
    });
    break;
    case "alert"://警告对话框,time时间后消失
    $("#tdlz_dialog_cancel").hide();
    $("#tdlz_dialog_ok").unbind();
    setTimeout(function () {
    $(dialogid).hide(500);
    $("#tdlz_dialog_ok").css("margin-right", "0");
    $("#tdlz_dialog_cancel").css("margin-left", "0");
    }, time);
    $("#tdlz_dialog_ok").click(function () {
    $(dialogid).hide(500);
    $("#tdlz_dialog_ok").css("margin-right", "0");
    $("#tdlz_dialog_cancel").css("margin-left", "0");
    });
    break;
    case "confirm"://确认对话框,带确认取消键,确认则执行函数,否则不执行并消失
    $("#tdlz_dialog_cancel").show();
    $("#tdlz_dialog_ok").css("margin-right", "5%");
    $("#tdlz_dialog_cancel").css("margin-left", "5%");
    $("#tdlz_dialog_ok").unbind();
    $("#tdlz_dialog_ok").click(function () {
    funcOK();
    setTimeout(function () {
    $(dialogid).hide(500)
    }, 1000);

    });
    $("#tdlz_dialog_cancel").click(function () {
    $(dialogid).hide(500);
    });
    break;
    case "time"://倒计时对话框,显示time时间倒计时,结束后消失
    $("#tdlz_dialog_cancel").hide();
    $("#dialog_lb_text").html(text + "" + time);
    var a = setInterval(function () {
    time = parseInt(time) - 1;
    if (time < 0) {
    clearInterval(a);
    $(dialogid).hide(500);
    }
    $("#dialog_lb_text").html(text + "" + time);
    }, 1000);
    $("#tdlz_dialog_ok").unbind();
    $("#tdlz_dialog_ok").click(function () {
    $(dialogid).hide(500);
    $("#tdlz_dialog_ok").css("margin-right", "0");
    $("#tdlz_dialog_cancel").css("margin-left", "0");
    });
    break;
    }
    }

    除了上面的使用函数,还需要对对话框进行初始化,为了插入文档中并且居中显示
    代码如下:
    function initDialog() {
    $("body").before(tdlz_dialog_content);
    //计算恰当的中间位置
    var top_percent = (window.innerHeight / 4) / window.innerHeight
    var left_percent = (window.innerWidth / 2 - $("#tdlz_dialog").width() / 2) / window.innerWidth;
    $("#tdlz_dialog").css("top", top_percent * 100 + "%");
    $("#tdlz_dialog").css("left", left_percent * 100 + "%");
    $("#tdlz_dialog").css("z-index", "100");
    $("#tdlz_dialog").hide();
    }

    使用的时候如下(以confirm对话框为例):
    代码如下:
    initDialog();
    showTdDialog("I'm a Dialog","confirm",function(){

    console.log("Button OK Clicked!");

    });

    效果图如下:

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    自己使用js/jquery写的一个定制对话框控件_javascript技巧

    自己使用js/jquery写的一个定制对话框控件_javascript技巧:最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一个通用的控件,虽然不是绝对通用啦,但在我这个项目里还是可以随意调用的,思想的话也可以借鉴到别的项目中
    推荐度:
    标签: 对话框 实现 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top