自己使用js/jquery寫的一個(gè)定制對話框控件
更新時(shí)間:2014年05月02日 14:19:32 作者:
自己做一個(gè)通用的控件,雖然不是絕對通用啦,但在我這個(gè)項(xiàng)目里還是可以隨意調(diào)用的,思想的話也可以借鑒到別的項(xiàng)目中
最近在做一個(gè)游戲項(xiàng)目,項(xiàng)目里面很多需要用到對話框,而且得用上美工做的圖片,這樣的話好像就不好去找一些現(xiàn)成的對話框控件了,于是便琢磨著自己做一個(gè)通用的控件,雖然不是絕對通用啦,但在我這個(gè)項(xiàng)目里還是可以隨意調(diào)用的,思想的話也可以借鑒到別的項(xiàng)目中。
先貼出主要代碼:
//對話框的基本html內(nèi)容,絕對定位,高寬設(shè)置,背景圖片,標(biāo)題,兩個(gè)按鈕圖
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:標(biāo)題,type:對話框類型,funcOK:確定的執(zhí)行函數(shù),time:倒計(jì)時(shí)或alert顯示的時(shí)間
function showTdDialog(text, type, funcOK, time) {
var dialogid = "#tdlz_dialog";
$(dialogid).show(500);
$("#dialog_lb_text").html(text);
switch (type) {
case "show"://展示信息的對話框,帶一個(gè)確定鍵,點(diǎn)擊后消失
$("#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時(shí)間后消失
$("#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"://確認(rèn)對話框,帶確認(rèn)取消鍵,確認(rèn)則執(zhí)行函數(shù),否則不執(zhí)行并消失
$("#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"://倒計(jì)時(shí)對話框,顯示time時(shí)間倒計(jì)時(shí),結(jié)束后消失
$("#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;
}
}
除了上面的使用函數(shù),還需要對對話框進(jìn)行初始化,為了插入文檔中并且居中顯示
function initDialog() {
$("body").before(tdlz_dialog_content);
//計(jì)算恰當(dāng)?shù)闹虚g位置
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();
}
使用的時(shí)候如下(以confirm對話框?yàn)槔?
initDialog();
showTdDialog("I'm a Dialog","confirm",function(){
console.log("Button OK Clicked!");
});
效果圖如下:
先貼出主要代碼:
復(fù)制代碼 代碼如下:
//對話框的基本html內(nèi)容,絕對定位,高寬設(shè)置,背景圖片,標(biāo)題,兩個(gè)按鈕圖
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:標(biāo)題,type:對話框類型,funcOK:確定的執(zhí)行函數(shù),time:倒計(jì)時(shí)或alert顯示的時(shí)間
function showTdDialog(text, type, funcOK, time) {
var dialogid = "#tdlz_dialog";
$(dialogid).show(500);
$("#dialog_lb_text").html(text);
switch (type) {
case "show"://展示信息的對話框,帶一個(gè)確定鍵,點(diǎn)擊后消失
$("#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時(shí)間后消失
$("#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"://確認(rèn)對話框,帶確認(rèn)取消鍵,確認(rèn)則執(zhí)行函數(shù),否則不執(zhí)行并消失
$("#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"://倒計(jì)時(shí)對話框,顯示time時(shí)間倒計(jì)時(shí),結(jié)束后消失
$("#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;
}
}
除了上面的使用函數(shù),還需要對對話框進(jìn)行初始化,為了插入文檔中并且居中顯示
復(fù)制代碼 代碼如下:
function initDialog() {
$("body").before(tdlz_dialog_content);
//計(jì)算恰當(dāng)?shù)闹虚g位置
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();
}
使用的時(shí)候如下(以confirm對話框?yàn)槔?
復(fù)制代碼 代碼如下:
initDialog();
showTdDialog("I'm a Dialog","confirm",function(){
console.log("Button OK Clicked!");
});
效果圖如下:

您可能感興趣的文章:
- jQuery Mobile的loading對話框顯示/隱藏方法分享
- jquery刪除提示框彈出是否刪除對話框
- jQuery UI庫中dialog對話框功能使用全解析
- JQuery彈出炫麗對話框的同時(shí)讓背景變灰色
- JQuery實(shí)現(xiàn)自定義對話框的代碼
- Jquery實(shí)現(xiàn)頁面加載時(shí)彈出對話框代碼
- 用JQuery 實(shí)現(xiàn)的自定義對話框
- jquery 模式對話框終極版實(shí)現(xiàn)代碼
- 6款經(jīng)典實(shí)用的jQuery小插件及源碼(對話框/提示工具等等)
- jQuery Dialog對話框事件用法實(shí)例分析
- jQuery實(shí)現(xiàn)時(shí)尚漂亮的彈出式對話框?qū)嵗?/a>
- jQuery實(shí)現(xiàn)定時(shí)隱藏對話框的方法分析
相關(guān)文章
用JS簡單實(shí)現(xiàn)九宮格抽獎(jiǎng)的示例代碼
在網(wǎng)上經(jīng)??匆娨恍┏楠?jiǎng)頁面,也玩過不同類型的抽獎(jiǎng)活動,但是一直沒有做過抽獎(jiǎng)的功能,所以今天來實(shí)現(xiàn)一個(gè)簡單的九宮格抽獎(jiǎng)功能,文中有詳細(xì)的代碼示例供大家參考,感興趣的朋友可以自己動手嘗試一下2023-12-12關(guān)于安卓手機(jī)微信瀏覽器中使用XMLHttpRequest 2上傳圖片顯示字節(jié)數(shù)為0的解決辦法
這篇文章主要介紹了關(guān)于安卓手機(jī)微信瀏覽器中使用XMLHttpRequest 2上傳圖片顯示字節(jié)數(shù)為0的解決辦法 的相關(guān)資料,需要的朋友可以參考下2016-05-05javascript中數(shù)組的sort()方法的使用介紹
數(shù)組的sort()方法用于排序,在本文將為大家介紹下javascript中sort()方法的具體使用2013-12-12JavaScript實(shí)現(xiàn)列表分頁功能特效
最近在做一個(gè)小項(xiàng)目,有時(shí)需要制作靜態(tài)頁面網(wǎng)站,而一旦涉及到文章的分頁,實(shí)現(xiàn)起來非常麻煩,自己又剛?cè)腴T,對js不是很熟悉,所以就拿來練練手。2015-05-05優(yōu)化javascript的執(zhí)行效率一些方法總結(jié)
本文為大家介紹下優(yōu)化javascript的執(zhí)行效率一些方法,個(gè)人感覺還不錯(cuò),感興趣的朋友可以了解下2013-12-12document.documentElement && document.documentElement
document.documentElement && document.documentElement.scrollTop...2007-12-12javascript設(shè)計(jì)模式 – 中介者模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 中介者模式,結(jié)合實(shí)例形式分析了javascript中介者模式基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04