artdialog

artDialog是一個精巧的web對話框組件,壓縮後只有十多KB,並且不依賴其他框架。

基本介紹

  • 中文名:artdialog
  • 釋義:web對話框組件
  • 特色:優雅靈活
  • 套用:電腦套用
特點,使用幫助,套用項目,

特點

能夠自適應內容
artDialog的特殊布局結構能夠原生的適應內容變化,你不必像以前一樣去考慮訊息內容大小,她能自己去適應內容。當然她仍然可以接受一個固定高寬的參數,她能夠防止內容溢出或截斷,同時也不會產生難看的滾動條,甚至能夠自動處理文本對齊方式。
例子例子
優雅靈活的接口
artDialog很用心的設計了她的接口,她擁有豐富的配置參數控制初始化狀態,並且每次調用後還會返回一些實用的內部控制接口,你可以先用變數把它保存起來,需要的時候在其他地方自由控制對話框。
精心設計的UI機制
artDialog採用九宮格的XHTML結構,CSS類鉤子比較豐富,可以定製類似桌面軟體般精緻的皮膚。她支持多皮膚共存,這些皮膚的背景圖片在頁面載入時就會被快取好,調用時幾乎感覺不到延時。
細緻的用戶體驗
她支持Esc快捷鍵關閉;如果對話框內容有輸入控制項她將支持Ctrl+Enter提交;智慧型給按鈕添加焦點;小對話框自動採用黃金比例垂直居中;超過指定面積大小的對話框拖動自動採用替身挪動;自動計算邊界防止超出可操作範圍……
跨瀏覽器兼容
兼容:IE6+、Firefox、Chrome、Safari、Opera,瀏覽器版本越高體驗越好。並且IE6下也能支持現代瀏覽器的靜止定位(fixed),支持覆蓋下拉控制項。
與jQuery協作
artDialog所有功能是不需要其他庫就可以使用的,但是如果頁面引入了jQuery,artDialog會奉獻自己成為它的外掛程式,利用它增強自身功能。

使用幫助

調用方式
一、使用傳統的參數傳值
art.dialog(String, Function, Function)
art.dialog('artDialog崇尚:簡單、強大、優雅', function(){alert('yes');});
運行»
二、使用字面量傳值
art.dialog(Object)
art.dialog({ content: '歡迎使用artDialog對話框組件!', skin: 'aero', icon: 'succeed', follow: 'btn2', yesFn: function(){ this.follow('btn1').time(2); return false; }});
運行»
是不是很簡單?接下來將有幾個表格列舉artDialog的全部功能,你需要的時候可以使用它們。配置參數 [除了content參數其餘的都是可選項]
名稱
類型
默認值
描述
內容
title
字元串
'提示'
標題內容。為false不顯示標題欄(需要皮膚檔案支持)
布爾
content
字元串
null
訊息內容,如果傳入的是一個JSON,還需要與tmpl參數配合解析模板
對象
按鈕
yesFn
函式
null
確定按鈕回調函式。
函式如果返回false將阻止對話框關閉;函式this指針指向內部api;如果傳入true表示只顯示有關閉功能的按鈕;傳入的第一個參數為對話框所在頁面window對象(這個在穿越框架後有用)
布爾
noFn
函式
null
取消按鈕回調函式。
函式如果返回false將阻止對話框關閉;函式this指針指向內部api;如果傳入true表示只顯示有關閉功能的按鈕;傳入的第一個參數為對話框所在頁面window對象(這個在穿越框架後有用)
布爾
yesText
字元串
'確定'
"確定按鈕"文字
noText
字元串
'取消'
"取消按鈕"文字
尺寸
width
數值
'auto'
設定內容固定寬度,可以指定單位。沒有則對話框自動適配
字元串
height
數值
'auto'
設定內容固定高度,可以指定單位。沒有則對話框自動適配
字元串
位置
fixed
布爾
false
開啟靜止定位
follow
元素
null
讓對話框依附在指定元素附近。如果是字元串則表示使用ID獲取元素
字元串
left
數值
'center'
X軸的坐標。如果開啟了fixed則原點以瀏覽器視口為基準。可以使用'left'、'center'、'right'這些關鍵字
字元串
top
數值
'center'
Y軸的坐標。如果開啟了fixed則原點以瀏覽器視口為基準。可以使用'top'、'center'、'bottom'這些關鍵字
字元串
界面
lock
布爾
false
開啟鎖屏。中斷用戶對話框之外的互動,用於顯示非常重要的操作/訊息
skin
字元串
'default'
自定義風格
border
布爾
true
是否顯示框線。(需要皮膚檔案支持)
icon
字元串
null
定義訊息圖示。(需要皮膚檔案支持)
高級
id
字元串
自定義對話框ID屬性。用途:1、防止重複彈出 2、返回已存在ID對話框的API接口
time
數值
null
設定對話框顯示時間。以秒為單位
drag
布爾
true
是否允許用戶拖動對話框
limit
布爾
true
是否限制挪動與定位範圍
focus
布爾
true
定位焦點到對話框中指定元素,默認定位到按鈕上。如果傳入字元串則使用ID獲取元素
字元串
元素
effect
布爾
true
是否開啟動畫特效
show
布爾
true
是否顯示。為false表示不顯示對話框,後面可以通過控制接口show()恢復顯示
tmpl
字元串
null
啟用模板引擎拼接訊息內容,還需要與content參數傳入JSON才能生效
esc
布爾
true
是否允許Esc鍵關閉對話框
window
字元串
'self'
指定視窗彈出對話框,可使用'top'、'parent'、'self'等關鍵字或者指定其他window對象。如果是'top'則表示讓對話框在頂級頁面彈出
對象
initFn
函式
null
對話框彈出後執行的函式
closeFn
函式
null
對話框關閉前執行的函式
上面這些的默認設定都可以統一被改變,如默認標題:art.dialog.defaults.title = '我是標題'
需要對彈出後的對話框操作?下面介紹的就是artDialog的控制接口了。
每次生成一個對話框後,它都會返回控制接口,這個控制接口還可以在回調函式的"this"指針獲取到。
如調用關閉接口,我們可以先定義一個變數引用對話框返回值:
var testDialog = art.dialog({ id: 'testDialog01', content: '我初始化後會返回控制接口,請注意接收'});然後在可以在其他地方調用"close"方法關閉對話框:
testDialog.close();當然還可以利用重複定義ID讓它返回原來API(如果此ID對話框存在):
art.dialog({id: 'testDialog01'}).close();好了,介紹了控制接口的用途,下面就是控制接口列表:
控制接口
名稱
返回值
描述
close()
null
關閉對話框
show()
{Object}
顯示對話框
hide()
{Object}
隱藏對話框
content()
{HTMLElement}
獲取訊息內容容器對象
content(value)
{Object}
向訊息容器中寫入內容(innerHTML)
follow(element)
{Object}
讓對話框吸附到指定元素附近。(可傳入對象的ID名稱)
position(left, top)
{Object}
重新定位對話框。無參數則居中定位
size(width, height)
{Object}
重新設定對話框大小。注意此時參數類型必須為數值
focus(element)
{Object}
定位焦點
artDialog還對一些常用的前後端互動方法進行擴展,並且這些對話框生下來就具有穿越框架的功能。這部分代碼是作為外掛程式實現的,你也可以根據自己需要去拓展新的方法(包括與jQuery結合使用),如果不需要也可以從源碼中剔除掉:
自帶的擴展方法
名稱
描述
art.dialog.alert(content)
警告
art.dialog.confirm(content, yesFn, noFn)
確認
art.dialog.prompt(content, yesFn, value)
提問
art.dialog.open(url, options)
彈窗(iframe)
art.dialog.close()
open方法創建的iframe里可用此關閉對話框
art.dialog.parent
open方法創建的iframe里可用此獲取來源視窗的window對象
art.dialog.tips(content, time)
短暫提示
art.dialog.load(url, options, cache)
Ajax載入內容
jQuery + artDialog
如果頁面引用了jQuery,將會獻身成為jQuery的一個外掛程式,方法與參數同上。例:
// 普通調用 $.dialog({content:'hello world!'});// 使用jQuery強大的選擇器讓對話框跟隨到元素附近 $('#main .test').dialog({content: 'hello world'});

套用項目

一、在頁面head引入一個js檔案。
<script src="artDialog.min.js"></script> 二、在頁面head設定默認配置(可選)。
<script>// 設定對話框全局默認配置(function(){ var d = art.dialog.defaults; // 按需載入要用到的皮膚,數組第一個為默認皮膚 // 如果只使用默認皮膚,可以不填寫skin d.skin = ['default', 'chrome', 'facebook', 'aero']; // 支持拖動 d.drag = true;})();</script>

相關詞條

熱門詞條

聯絡我們