手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >自己使用js/jquery写的一个定制对话框控件
自己使用js/jquery写的一个定制对话框控件
摘要:最近在做一个游戏项目,项目里面很多需要用到对话框,而且得用上美工做的图片,这样的话好像就不好去找一些现成的对话框控件了,于是便琢磨着自己做一...

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

先贴出主要代码:

复制代码 代码如下:

//对话框的基本html内容,绝对定位,高宽设置,背景图片,标题,两个按钮图

var tdlz_dialog_content = "<div id='tdlz_dialog"

+ "'><ul><li id='dialog_lb_text'>"

+ "</li><li><img id='tdlz_dialog_ok' src='assets/images/queren.png'></img><img id='tdlz_dialog_cancel' src='assets/images/quxiao.png'></img></li></ul></div>";

//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!");

});

效果图如下:

1

【自己使用js/jquery写的一个定制对话框控件】相关文章:

jquery实现的判断倒计时是否结束代码

基于jquery实现下拉框美化特效

如何用JS取得网址中的文件名

状态栏(status)特效

jQuery封装的tab选项卡插件分享

JS/Jquery判断对象为空的方法

Jquery zTree 树控件异步加载操作

AspNet中使用JQuery boxy插件的确认框

用JavaScript实现对话框的教程

IE中jscript/javascript的条件编译

精品推荐
分类导航