替代alert的消息框和提示框

来源:http://www.cnblogs.com/xueyeduling/archive/2017/05/09/6833034.html
-Advertisement-
Play Games

alert提示框由於外觀不太友好,所以一般都不用alert了。 我在這裡使用bootstrap的樣式,寫了一個可以單獨顯示消息,也可以確認取消的提示框。 使用的外觀如下: 一:單獨顯示消息: 二:確認和取消: 單獨顯示消息的方法傳遞類型,信息,顯示時間以及回掉函數。其中通過重載可以只傳遞信息。 確認 ...


  alert提示框由於外觀不太友好,所以一般都不用alert了。

  我在這裡使用bootstrap的樣式,寫了一個可以單獨顯示消息,也可以確認取消的提示框,確認,取消的採用模式對話框方式,用一個div遮蓋了後面所有內容。

  使用的外觀如下:

  一:單獨顯示消息:

  

  二:確認和取消:

  

  單獨顯示消息的方法傳遞類型,信息,顯示時間以及回掉函數。其中通過重載可以只傳遞信息。

  確認和取消的方法傳遞類型,信息以及回掉函數。其中可以通過重載可以只傳遞信息和確認後執行的回掉函數。如果點擊取消就去隱藏該提示框。

  下麵是這個提示框的js代碼:

  

  1 //success   成功
  2 //info      信息
  3 //warning   警告
  4 //danger    錯誤!
  5 function alertBox(type, msg, showTime, callBack) {
  6     var divCss = "alert alert-" + type + " alert-dismissable";
  7     if (showTime == null) showTime = 3000;
  8     var divAlertBox;
  9     if ($("#divAlertBox").length != 0) {
 10         $("#divAlertBox span").text(msg);
 11         divAlertBox = $("#divAlertBox");
 12         divAlertBox.removeClass().addClass(divCss).slideDown(1000);
 13         box(divAlertBox);
 14     } else {
 15         divAlertBox = $("<div id='divAlertBox' style='display:none;position:fixed;z-index:9999;' class='" + divCss + "'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button><span>" + msg + "</span></div>");
 16         $("body").append(divAlertBox);
 17         divAlertBox.slideDown(1000);
 18         box(divAlertBox);
 19     }
 20     setTimeout(function () {
 21         divAlertBox.fadeOut(1000);
 22         if (callBack != null) {
 23             callBack();
 24         }
 25     }, showTime);
 26 }
 27 
 28 function alertSuccess(msg, showTime, callBack) {
 29     alertBox("success", msg, showTime, callBack);
 30 }
 31 
 32 function alertInfo(msg, showTime, callBack) {
 33     alertBox("info", msg, showTime, callBack);
 34 }
 35 
 36 function alertWarning(msg, showTime, callBack) {
 37     alertBox("warning", msg, showTime, callBack);
 38 }
 39 
 40 function alertDanger(msg, showTime, callBack) {
 41     alertBox("danger", msg, showTime, callBack);
 42 }
 43 
 44 //必傳入回掉函數
 45 function confirmBox(type, msg, callBack) {
 46     var divCss = "alert alert-" + type;
 47     var divConfirmBox;
 48     if ($("#divConfirmBox").length != 0) {
 49         var divConfirmBoxCover = $("#divConfirmBoxCover");
 50         divConfirmBoxCover.show();
 51         $("#divConfirmBox span").text(msg);
 52         divConfirmBox = $("#divConfirmBox");
 53         divConfirmBox.removeClass().addClass(divCss).slideDown(1000);
 54         divConfirmBox.find("button:first")[0].onclick = callBack;
 55         box(divConfirmBox);
 56     } else {
 57         var divConfirmBoxCover = $("<div id='divConfirmBoxCover' style='position:fixed;top:0px;left:0px;z-index:9998;width:100%;height:100%;'><div>");
 58         divConfirmBox = $("<div id='divConfirmBox' style='display:none;position:fixed;z-index:9999;' class='" + divCss + "'><span>" + msg + "</span><br/></div>");
 59         var btnYes = $("<button style='margin-top:20px;margin-right:50px;' type='button' class='btn btn-warning'>確定</button>");
 60         var btnNo = $("<button style='margin-top:20px;float:right;' type='button' class='btn btn-primary'  onclick='confirmBoxHide()'>取消</button>");
 61         btnYes[0].onclick = callBack;
 62         divConfirmBox.append(btnYes).append(btnNo);
 63         $("body").append(divConfirmBox).append(divConfirmBoxCover);
 64         divConfirmBox.slideDown(1000);
 65         box(divConfirmBox);
 66     }
 67 }
 68 
 69 function confirmSuccess(msg, callBack) {
 70     confirmBox("success", msg, callBack);
 71 }
 72 
 73 function confirmInfo(msg, callBack) {
 74     confirmBox("info", msg, callBack);
 75 }
 76 
 77 function confirmWarning(msg, callBack) {
 78     confirmBox("warning", msg, callBack);
 79 }
 80 
 81 function confirmDanger(msg, callBack) {
 82     confirmBox("danger", msg, callBack);
 83 }
 84 
 85 function confirmBoxHide() {
 86     $("#divConfirmBox").fadeOut(1000);
 87     $("#divConfirmBoxCover").hide();
 88 }
 89 
 90 function box(jqObj) {
 91     //獲取DIV為‘box’的盒子
 92     var oBox = jqObj[0];
 93     //獲取元素自身的寬度
 94     var L1 = oBox.clientWidth;
 95     //獲取元素自身的高度
 96     var H1 = oBox.clientHeight;
 97     //獲取實際頁面的left值。(頁面寬度減去元素自身寬度/2)
 98     var Left = (document.documentElement.clientWidth - L1) / 2;
 99     //獲取實際頁面的top值。(頁面寬度減去元素自身高度/2)
100     var top = (document.documentElement.clientHeight - H1) / 4;
101     oBox.style.left = Left + 'px';
102     oBox.style.top = top + 'px';
103 }

 

  然後是測試頁面的代碼,記得引用1.10以上的jQuery和bootstrap.min.css,bootstrap.min.js。

  這裡是將上面的JS代碼單獨放在一個js文件中,然後引用,加了那麼多<br/>是為了觀看滾動的效果——提示框是否會跟著移動。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>

    <link href="NewFolder1/bootstrap.min.css" rel="stylesheet" />
    <script src="NewFolder1/jquery-1.11.1.min.js"></script>
    <script src="NewFolder1/bootstrap.min.js"></script>
    <script src="JavaScript1.js"></script>

</head>
<body>
    <input type="button" name="name" value="alertSuccess" onclick="alertSuccess('提示信息:成功!')" />
    <input type="button" name="name" value="alertInfo" onclick="alertInfo('提示信息:成功!')" />
    <input type="button" name="name" value="alertWarning" onclick="alertWarning('提示信息:警告!')" />
    <input type="button" name="name" value="alertDanger" onclick="alertDanger('提示信息:危險!')" />
    <br />
    <input type="button" name="name" value="confirmSuccess" onclick="confirmSuccess('提示信息:成功!', function () { window.location = 'http://www.cnblogs.com/xueyeduling/p/6833034.html'; })" />
    <input type="button" name="name" value="confirmInfo" onclick="confirmInfo('提示信息:成功!' ,function () { window.location='http://www.cnblogs.com/xueyeduling/p/6833034.html' ; })" />
    <input type="button" name="name" value="confirmWarning" onclick="confirmWarning('提示信息:警告!' ,function () { window.location='http://www.cnblogs.com/xueyeduling/p/6833034.html' ; })" />
    <input type="button" name="name" value="confirmDanger" onclick="confirmDanger('提示信息:危險!' ,function () { window.location='http://www.cnblogs.com/xueyeduling/p/6833034.html' ; })" />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • spring為開發者提供了一個名為spring boot devtools的模塊來使Spring Boot應用支持熱部署,提高開發者的開發效率,無需手動重啟Spring Boot應用。 devtools的原理 深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類 ...
  • 1)CDATA部分用<![CDATA[和]]>來限定其界限,它們是字元數據的一種特殊形式,可用使用它們來囊括那些含有<、>,&之類字元的字元串,而不必將它們解釋為標記例如:<![CDATA[<]]>,另外需要註意的是CDATA部分不能包含字元串]]>。 2)處理指令(processing instr ...
  • 題目描述 最近,Elaxia和w的關係特別好,他們很想整天在一起,但是大學的學習太緊張了,他們 必須合理地安排兩個人在一起的時間。Elaxia和w每天都要奔波於宿舍和實驗室之間,他們 希望在節約時間的前提下,一起走的時間儘可能的長。 現在已知的是Elaxia和w**所在的宿舍和實驗室的編號以及學校的 ...
  • 1、簡介 這一篇文章主要介紹的是http協議下載時的斷點續傳,詳細到各個步驟。主要步驟有:DNS查找、TCP三次握手、http請求發送、TCP協議數據傳輸、暫停後的狀態、繼續下載、TCP三次握手、http請求發送、數據傳輸、。。。、下載成功發送http響應信息、TCP四次握手斷開連接。 2、原理知識 ...
  • 在Python中,通常有這幾種方式來表示時間:1)時間戳 2)格式化的時間字元串 3)元組(struct_time)共九個元素。由於Python的time模塊實現主要調用C庫,所以各個平臺可能有所不同。 UTC(Coordinated Universal Time)即格林威治天文時間,為世界標準時... ...
  • 讀取核心配置文件 核心配置文件是指在resources根目錄下的application.properties或application.yml配置文件,讀取這兩個配置文件的方法有兩種,都比較簡單。 先創建一個簡單的springBoot程式,可以參考: "http://www.cnblogs.com/l ...
  • 聲明:因為運行環境是基於Linux系統的,在做此框架之前需要做一些前期的環境準備工作CentOs下安裝Tomcat7網上很多實例,因為博客後期作為框架的原生教程,故這邊做詳細的安裝記錄,我這邊已經下載好了Tomcat7,通過ssh已經上傳到指定的目錄,這裡直接講解安裝的過程。1. 安裝tomcat通 ...
  • Ex1: Vrsense 選 37.4 mV 在第一張圖 Rsense 選 50 mΩ 在第二張圖 37.4 / 50 = 748 mA Ex2: Vrsense 選 44.2 mV 44.2 / 50 = 884 mA Rsense 是可變動的。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...