使用jQuery實現彈出框效果
阿新 • • 發佈:2019-01-29
一,背景
由於在專案中需要用到的一個頁面效果是彈出框,在專案中我使用jquery的ui外掛,來實現這個功能,用法也比較簡單
二,準備環境
1)引入jquery外掛。
在index.html中的頭部加上,以下程式碼
<linkrel="stylesheet"href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"><scriptsrc="//code.jquery.com/jquery-1.9.1.js"></script><scriptsrc="//code.jquery.com/ui/1.10.4/jquery-ui.js"這裡給出的連結是直接copy 網站的,實測有效></script>
2)在Index.html加上承載彈出呈的標籤
<divid="dialog"title="基本的對話方塊"><p>這是一個預設的對話方塊,用於顯示資訊。對話方塊視窗可以移動,調整尺寸,預設可通過 'x' 圖示關閉。</p></div>此段標籤,再用下面的js進行隱藏
3)新增js檔案,初始化對話方塊
<script> $(function(){ $("#dialog").dialog({ autoOpen:false以上的js的作用是初始化對話方塊,預設對話方塊不顯示,點選時候顯示。, show:{ effect:"blind", duration:1000}, hide:{ effect:"explode", duration:1000}}); $("#opener").click(function(){ $("#dialog").dialog("open");});});</script>
OK,當然我還需要在對話方塊上增加按鈕的功能
button:{
"Ok" : function(){
//邏輯處理
},
'Cancel':function(){
//關閉彈出框
jQuery(this).dialog("close");
}
}
三,正式程式碼
在專案中,我的需求是單擊輸入框,彈出一個對話框出來,選擇資料,按下按鈕然後進行提交,那麼我把程式碼分成兩部分。
1)觸發事件彈出層
<div class="col-sm-6 col-xs-6"> <input class="form-control" name="attract" id="attract" type="text" value="{if empty($contract_data['id'])}單擊選擇招商人{else}{$contract_data['attract_name']}{/if}" readonly> <input name="attract-id" id="attract-id" type="hidden" value="{$contract_data['attract']}"> </div>
2)初始化彈出層
<div id="dialog-attract" title="招商人">loading...</div>
<script> jQuery(function () { jQuery('#attract').click(function () { jQuery("#dialog-attract").dialog("open"); jQuery("#dialog-attract").load("url"); return false; }); jQuery("#dialog-attract").dialog( { modal:true, autoOpen:false, width: 800, maxHeight: 400, buttons:{ 'Ok':function () { jQuery(this).dialog('close') }, 'Cancel':function () { jQuery(this).dialog('close') } }, position:["center",100] } ); }); </script>
注意,彈出層的提交需要注意,儘量避開form表單的內嵌