目錄
發送訊息給我們
你有新的訊息
首頁 web前端 js教程 使用jQuery fancybox插件打造一個實用的資料傳輸模態彈出窗體_jquery

使用jQuery fancybox插件打造一個實用的資料傳輸模態彈出窗體_jquery

May 16, 2016 pm 05:43 PM
資料傳輸

模態窗體已成為Web開發人員設計介面時常要使用的傳輸資料的方式。 透過模態窗口,可以提高網站的可用性。剛好專案的需要,有個客戶想要模態彈出的窗體來提交網站的回饋,經過一番測試實現了,我使用jQuery fancybox外掛程式來建立一個漂亮的模態窗體,提交表單的資料在伺服器端實作Ajax呼叫。你可以在你的郵件裡收到用戶發送的回饋訊息

html程式碼
html代碼

複製程式碼



複製程式碼

程式碼如下
示範首先,從官網下載最新的Fancybox,下載最新的F
並解壓縮。 核心的HTML頁面程式碼是非常簡單的,這裡有一個隱藏的DIV,當使用者點擊href連結時候,開啟一個模態視窗。



複製程式碼


程式碼如下:






Send us feedback from the modal window.

有本事你點我

發送訊息給我們

  CSS樣式表 設定文字方塊的顏色,大小,取得焦點下的樣式等等,使用:hover

來顯示

狀態。




複製程式碼


程式碼如下:


.txt {
display;
color: #676767;
width: 420px;
font-family: Arial, Tahoma, sans-serif;
margin-bottom: 10px;
bif; padding: 5px 9px;
font-size: 1.2em;
line-height: 1.4em;
}

.txtarea {
display: block color: #676767;
font-family: Arial, Tahoma, sans-serif;
margin-bottom: 10px;
width: 500px;
border: 1px dotted #ccc;
padding: 5px 9px;
font-size: 1.2em;
line-height: 1.4em;
}
. :focus,
.txtarea:focus {
border-style: solid;
border-color: #bababa;
color: #444;
}

input. error,
textarea.error {
border-color: #973d3d;
border-style: solid;
background: #f0bebe;
color: #a35959;
}
color: #a35959; } input.error:focus, textarea.error:focus { border-color: #973d3d; color: #a35959; }
我定义了一个错误的css类,结合jquery用来检测用户输入的数据是否正确,输入错误数据会使字段文字,边框和背景变成深色。直到用户输入有效的数据字段颜色将恢复正常。

复制代码 代码如下:

#send {
color: #dee5f0;
display: block;
cursor: pointer;
padding: 5px 11px;
font-size: 1.2em;
border: solid 1px #224983;
border-radius: 5px;
background: #1e4c99;
background: -webkit-gradient(linear, left top, left bottom, from(#2f52b7), to(#0e3a7d));
background: -moz-linear-gradient(top, #2f52b7, #0e3a7d);
background: -webkit-linear-gradient(top, #2f52b7, #0e3a7d);
background: -o-linear-gradient(top, #2f52b7, #0e3a7d);
background: -ms-linear-gradient(top, #2f52b7, #0e3a7d);
background: linear-gradient(top, #2f52b7, #0e3a7d);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f52b7', endColorstr='#0e3a7d');
}

#send:hover {
background: #183d80;
background: -webkit-gradient(linear, left top, left bottom, from(#284f9d), to(#0c2b6b));
background: -moz-linear-gradient(top, #284f9d, #0c2b6b);
background: -webkit-linear-gradient(top, #284f9d, #0c2b6b);
background: -o-linear-gradient(top, #284f9d, #0c2b6b);
background: -ms-linear-gradient(top, #284f9d, #0c2b6b);
background: linear-gradient(top, #284f9d, #0c2b6b);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#284f9d', endColorstr='#0c2b6b');
}

#send:active {
color: #8c9dc0;
background: -webkit-gradient(linear, left top, left bottom, from(#0e387d), to(#2f55b7));
background: -moz-linear-gradient(top, #0e387d, #2f55b7);
background: -webkit-linear-gradient(top, #0e387d, #2f55b7);
background: -o-linear-gradient(top, #0e387d, #2f55b7);
background: -ms-linear-gradient(top, #0e387d, #2f55b7);
background: linear-gradient(top, #0e387d, #2f55b7);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0e387d', endColorstr='#2f55b7');
}

CSS 按钮我使用 CSS3来创建线型渐变,代码如上

使用 Fancybox

页面加载元素完成之后,调用Fancybox默认代码

复制代码 代码如下:

$(document).ready(function() {
$(".modalbox").fancybox();
$("#contact").submit(function() { return false; });//禁用默认的窗体提交

代码的第二行禁用默认的联系人表单提交动作。为什么呢?因此这样我们可以处理自己的单击事件,并通过 Ajax 传递数据。在用户提交表单后,我们需要得到 (电子邮件和消息) 两个字段的当前值。我们还想要检查电子邮件地址是否有效和消息长度是否超过规定的长度值
复制代码 代码如下:

$("#send").on("click", function(){
var emailval = $("#email").val();
var msgval = $("#msg").val();
var msglen = msgval.length;
var mailvalid = validateEmail(emailval);

if(mailvalid == false) {
$("#email").addClass("error");
}
else if(mailvalid == true){
$("#email").removeClass("error");
}

if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}

上面jquery代码使用一些逻辑语句。直到电子邮件有效和消息的长度超过 4 个字母,才会提交表单。

发送Ajax 请求
通过上面的onclick事件,需要将表单数据发送到 PHP。,我们将在我们的收件箱中收到电子邮件。
複製程式碼 程式碼如下:

// 如果兩個欄位驗證通過接下來發送訊息

//點擊發送按鈕之後,按鈕被替換成「發送中」這樣的文字提示,目的是為了防止用戶在點擊提交,提示也更人性化

$("# send").replaceWith("發送中...");
$.ajax({
type: 'POST',
url: 'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact") .fadeOut("fast", function(){
$(this).before("

提交成功! 您的留言已經發送, 謝謝:)

") ;

setTimeout("$.fancybox.close()", 1000);
});
}
}
});
}
} );

這裡使用serialize(),方法來序列化提交的ajax數據,使得生成標準的URL編碼
伺服器響應成功之後,隱藏彈出的窗體,並顯示成功訊息。 我使用 setTimeout() 方法來關閉 fancybox ,這裡我設定一秒鐘後隱藏窗體。 要執行此操作的 JS 程式碼是 $.fancybox.close()。

 

使用 PHP發送郵件
sendmessage.php 接受使用者輸入的變數。 然後呼叫郵件嘗試發送它,發送成功返回"true"否則返回false
複製代碼 代碼如下:

$sendto = "2495371937@qq.com";//定義郵件的接收者
$usermail = $_POST['email'];//取得電子郵件
$content = nl2br($_POST['msg']);//取得訊息

$subject = "你有新的訊息";
$headers = "來自: " . strip_tags($usermail ) . "rn";
$headers .= "Reply-To: ". strip_tags($usermail) . "rn";
$headers .= "MIME-Version: 1.0raan";
$ headers .= "Content-Type: text/html;charset=utf-8 rn";

$msg = "";
$msg .= "

你有新的訊息

rn";
$msg .= "來自: ".$usermail."rn";
$msg .= "內容: ".$content."rn";
$msg .= "";
if(@mail($sendto, $subject, $msg, $headers)) {
echo "true";
} else {
echo "false";
}

示範

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

兩個iphone怎麼傳輸所有資料 詳細講解:遷移舊手機資料 的方法 兩個iphone怎麼傳輸所有資料 詳細講解:遷移舊手機資料 的方法 Mar 18, 2024 pm 06:31 PM

兩個iphone怎麼傳輸所有資料 詳細講解:遷移舊手機資料 的方法

React API呼叫指南:如何與後端API互動和資料傳輸 React API呼叫指南:如何與後端API互動和資料傳輸 Sep 26, 2023 am 10:19 AM

React API呼叫指南:如何與後端API互動和資料傳輸

Java API 開發中使用 Https 進行資料傳輸 Java API 開發中使用 Https 進行資料傳輸 Jun 18, 2023 pm 10:43 PM

Java API 開發中使用 Https 進行資料傳輸

PHP trait DTO:優化資料傳輸過程的關鍵工具 PHP trait DTO:優化資料傳輸過程的關鍵工具 Oct 12, 2023 pm 02:33 PM

PHP trait DTO:優化資料傳輸過程的關鍵工具

PHP trait DTO:最佳化資料傳輸過程的關鍵利器 PHP trait DTO:最佳化資料傳輸過程的關鍵利器 Oct 12, 2023 pm 03:10 PM

PHP trait DTO:最佳化資料傳輸過程的關鍵利器

PHP中如何呼叫API介面以實現資料的傳輸和處理? PHP中如何呼叫API介面以實現資料的傳輸和處理? Sep 06, 2023 am 08:21 AM

PHP中如何呼叫API介面以實現資料的傳輸和處理?

C++在嵌入式系統開發中的周邊設備控制與資料傳輸功能實務 C++在嵌入式系統開發中的周邊設備控制與資料傳輸功能實務 Aug 25, 2023 pm 07:10 PM

C++在嵌入式系統開發中的周邊設備控制與資料傳輸功能實務

PHP加密確保通訊安全 PHP加密確保通訊安全 Jun 30, 2023 pm 10:36 PM

PHP加密確保通訊安全

See all articles