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


Posted in Javascript onMay 02, 2014

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

先贴出主要代码:

//对话框的基本html内容,绝对定位,高宽设置,背景图片,标题,两个按钮图 
var tdlz_dialog_content = "<div id='tdlz_dialog" 
+ "' style='position:absolute;text-align:center;width:540px;height:331px;background:url(assets/images/add_fbc.png);'><ul><li id='dialog_lb_text' style='margin-top:100px;color:#fff;font-size:25px'>" 
+ "</li><li style='margin-top:100px;cursor:pointer'><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!"); 
});

效果图如下:
自己使用js/jquery写的一个定制对话框控件
Javascript 相关文章推荐
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
全面解析bootstrap格子布局
May 22 Javascript
canvas实现弧形可拖动进度条效果
May 11 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
Aug 03 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
对layui中的onevent 和event的使用详解
Sep 06 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 Javascript
基于JS实现视频上传显示进度条
May 12 Javascript
JS实现简单控制视频播放倍速的实例代码
Apr 18 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 #Javascript
jQuery简单图表peity.js使用示例
May 02 #Javascript
jsPDF导出pdf示例
May 02 #Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 #Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 #Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 #Javascript
ExtJS4如何给同一个formpanel不同的url
May 02 #Javascript
You might like
PHP通过COM使用ADODB的简单例子
2006/12/31 PHP
PHP数据缓存技术
2007/02/14 PHP
php header Content-Type类型小结
2011/07/03 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python常用算法学习基础教程
2017/04/13 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python url 参数修改方法
2018/12/26 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
Python gevent协程切换实现详解
2020/09/14 Python
Python解析微信dat文件的方法
2020/11/30 Python
python基于win32api实现键盘输入
2020/12/09 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
高三毕业典礼主持词
2014/03/27 职场文书
中学生寄语大全
2014/04/03 职场文书
环保标语口号
2014/06/13 职场文书
死亡证明书样本说明
2014/10/18 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
python如何在word中存储本地图片
2021/04/07 Python
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技