aui 簡介 aui 是一套基於原生javascript開發的移動端UI庫,包含常用js方法、字元校驗、dialog提示彈窗、側滑菜單、時間選擇器、多級聯動、聊天UI、項目常用模板...... 特點 1、標準化,產品化 2、更多復用,更快效率 3、多人協作,更加統一 4、維護方便 5、易於使用 6、 ...
aui
簡介
aui 是一套基於原生javascript開發的移動端UI庫,包含常用js方法、字元校驗、dialog提示彈窗、側滑菜單、時間選擇器、多級聯動、聊天UI、項目常用模板......
特點
1、標準化,產品化
2、更多復用,更快效率
3、多人協作,更加統一
4、維護方便
5、易於使用
6、減少UI設計時間
引用
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
演示
組件
loading載入動畫
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
type | number | 1: 常用風格; 2: 點擊按鈕後在按鈕內顯示載入動畫; 3: 四個方塊旋轉; 4: 圓點放大縮小動畫(全屏首次載入過度動畫); 5: 圓點背景過度動畫-微信小程式效果(全屏首次載入過度動畫) | 1 | 否 |
msg | string | 提示內容 | '' | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
direction | string | 橫向("row")或縱向("col")控制 | 'col' | 否 |
theme | number | type=3時,控制全屏或小窗展示(1:小窗; 2:全屏) | 1 | 否 |
style | object | { bg: '背景', color: '文字顏色', maskBg: '遮罩層顏色', zIndex: '層級'} | '' | 否 |
顯示loading載入:
aui.showload({
msg: "載入中"
});
隱藏loading載入:
aui.hideload();
toast消息提示彈窗
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
msg | string | 提示內容 | '' | 是 |
icon | string | 圖標 | '' | 否 |
direction | string | 橫向("row")或縱向("col")控制 | 'col' | 否 |
location | string | (icon參數未配置時可配置)位置 bottom:位於底部,從底部彈出顯示middle:位於頁面中心位置 | 'bottom' | 否 |
duration | number | 顯示時間 | 2000 | 否 |
示例:
aui.toast({
icon: "../../img/success.png",
msg: "支付成功!",
direction: "col"
},function(ret){
});
dialog提示窗
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
title | string | 標題 | '' | 否 |
msg | string | 提示內容 | '' | 是 |
btns | arr | 按鈕,預設按鈕為“確定” 分別可設置btns值為1:['按鈕1', '按鈕2']2:[{name: '按鈕1', color: ''},{name: '按鈕2', color: ''}] | ["確定"] | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
touchClose | boolean | 觸摸遮罩是否關閉模態彈窗 | true | 否 |
theme | number | 主題樣式,控制模態彈窗按鈕顯示風格(1: 大按鈕; 2: 小按鈕-居右分佈; 3: 按鈕寬度等於父級寬度100%,適用於按鈕文字過多情況) | 'col' | 否 |
items | arr | prompt--input框列表配置[{label: '姓名:', type: 'text', value: '(可選)', placeholder: '請輸入姓名'}] | [] | 否 |
duration | number | 顯示時間 | 2000 | 否 |
style | object | { w: '', //--可選參數,模態窗寬度,預設80% h: '', //--可選參數,模態窗高度,預設"auto"自適應 bg: '',//--可選參數,模態窗背景色,預設白色 zIndex: '', //--可選參數,模態窗層級 animate: '', //--可選參數,顯示動畫 title: { bg: "", color: "", lineHeight: "", textAlign: "", fontSize: "", padding: ""}} | '' | 否 |
1、alert單按鈕提醒彈窗
aui.alert({
title: "提示", //可選
msg: "您點擊了alert單按鈕模態彈窗!",
mask: true,
touchClose: true, //可選
btns: ["確定"], //可選
//或btns: [{name: '按鈕1', color: '#f00'},{name: '按鈕2', color: '#00f'}], //可選
theme: 1, //可選
style: { //可選
w: "75%",
h: "auto",
bg: '#FFF',
zIndex: 999,
animate: "aui-scale-in-tosmall-dialog",
title: {
bg: "#FFF",
color: "#333",
lineHeight:"55px",
fontSize: "17px",
textAlign: "center",
padding: "0px"
}
}
},function(ret){
console.log(ret.index);
if(ret.index == 0){
aui.toast({msg: "您點擊了確定"});
}
});
2、confirm雙按鈕提醒彈窗
aui.confirm({
msg: "您點擊了confirm雙按鈕模態彈窗!",
btns: ["取消", "確定"],
},function(ret){
console.log(ret.index);
if(ret.index == 1){
aui.toast({msg: "您點擊了確定"});
}
});
3、delete刪除提醒彈窗
aui.delete({
msg: "您點擊了delete刪除模態彈窗!",
btns: ["取消", "刪除"],
},function(ret){
console.log(ret.index);
if(ret.index == 1){
aui.toast({msg: "您點擊了刪除"});
}
});
4、prompt輸入彈窗
aui.prompt({
items: [{
label: '姓名:',
type: 'text',
value: '',
placeholder: '請輸入姓名'
},{
label: '年齡:',
type: 'number',
value: '',
placeholder: '請輸入年齡'
}],
btns: ["取消", "確定"],
},function(ret){
console.log(ret.data);
if(ret.index == 1)
{
aui.alert({
title: "輸入結果:",
msg: "<div style='text-align: left;'>姓名:" + ret.data[0] + "</br>年齡:" + ret.data[1]+"</div>",
btns: ["確定"],
}, function(ret){
if(ret.index == 0){
aui.toast({msg: "您點擊了確定"});
}
});
}
});
5、confirm帶圖標雙按鈕提醒彈窗
aui.confirm({
msg: "<div style='text-align: center;'>"
+"<img src='../../img/success-green.png' style='width: 60px; margin: 0 auto;'>"
+"<p style='width: 100%; line-height: 25px; color: 15px;'>帶圖標模態彈窗</p>"
+"</div>",
btns: ["取消", "確定"],
},function(ret){
console.log(ret.index);
if(ret.index == 1){
aui.toast({msg: "您點擊了確定"});
}
});
6、多按鈕彈窗
aui.confirm({
msg: "您點擊了多按鈕彈窗!",
btns: [{name: '殘忍拒絕', color: ''},{name: '再逛逛', color: ''}, {name: "返迴首頁", color: "#909090"}], //可選
theme: 3, //可選
},function(ret){
console.log(ret.index);
if(ret.index == 0){
aui.toast({msg: "您點擊了殘忍拒絕"});
}
else if(ret.index == 1){
aui.toast({msg: "您點擊了再逛逛"});
}
else if(ret.index == 2){
aui.toast({msg: "您點擊了返迴首頁"});
}
});
actionsheet操作表
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
items | arr | 菜單列表[{name: "", color: "", fontSize: "", textAlign: ""}] | [] | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
touchClose | boolean | 觸摸遮罩是否關閉模態彈窗 | true | 否 |
cancle | string | 取消按鈕 | '' | 否 |
location | string | 位置 bottom:位於底部,從底部彈出顯示middle:位於頁面中心位置 | 'bottom' | 否 |
theme | number | 主題樣式(1: 非全屏寬度; 2: 全屏寬度) | 1 | 否 |
示例:
aui.actionSheet({
title: '上傳圖片',
mask: true,
touchClose: true,
items: [{
name: "從相冊選擇",
},{
name: "拍照"
}],
cancle: "取消",
theme: 1,
location: "bottom"
},function(ret){
console.log(ret.index);
});
actionmenu分享彈窗
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
items | arr | 菜單列表[{name: "", icon: "", iconColor: "", img: ""}] | [] | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
touchClose | boolean | 觸摸遮罩是否關閉模態彈窗 | true | 否 |
cancle | string | 取消按鈕 | '' | 否 |
location | string | 位置 bottom:位於底部,從底部彈出顯示middle:位於頁面中心位置 | 'bottom' | 否 |
theme | number | 主題樣式(1: 非全屏寬度; 2: 全屏寬度) | 1 | 否 |
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.actionmenu.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.actionmenu.js"></script>
示例:
aui.actionMenu({
title: '分享至',
mask: true,
touchClose: true,
items: [
{name: "微信", img: "../../img/weixin.png"},
{name: "朋友圈", img: "../../img/pengyouquan.png"},
{name: "QQ", img: "../../img/QQ.png"},
{name: "微博", img: "../../img/weibo.png"}
],
cancle: "取消",
theme: 1,
location: "bottom"
},function(ret){
console.log(ret.index);
});
popover菜單
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
items | arr | 菜單列表[{name: "", color: "", icon: "iconfont icongfont-right", iconColor: '', img: "", fontSize: "", textAlign: ""}] | [] | 否 |
mask | boolean | 是否顯示遮罩蒙版 | false | 否 |
touchClose | boolean | 觸摸遮罩是否關閉模態彈窗 | true | 否 |
location | string | 位置 top: 設置彈窗顯示到觸發元素“上”方; bottom: 設置彈窗顯示到觸發元素“下”方; | 'top' | 否 |
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.popover.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.popover.js"></script>
示例:
aui.popover.open({
warp: '.aui-header-right',
items: [
{name: '微信', img: '../../img/weixin.png'},
{name: '朋友圈', img: '../../img/pengyouquan.png'},
{name: 'QQ', img: '../../img/QQ.png'},
{name: '微博', img: '../../img/weibo.png'}
],
mask: true,
location: 'bottom'
},function(ret){
console.log(ret);
aui.toast({msg: ret.el.querySelector("span").innerHTML});
})
picker多級聯動
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
title | string | 標題 | '' | 否 |
layer | number | 控制幾級聯動 | 1 | 否 |
data | arr | 數據 如:[{text: '', adcode: '', children: [{text: '', adcode: ''}]}] | [] | 否 |
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.picker.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.picker.js"></script>
示例:
aui.picker.open({
title: '選擇區域',
layer: 3,
data: cityData, //城市數據
select: function(ret){
console.log(ret);
}
},function(ret){
console.log(ret);
if(ret.status == 1){
aui.picker.close(function(){
aui.alert({msg: ret.data.text + " " + ret.data.children.text + ' ' + ret.data.children.children.text});
});
}
})
poster廣告彈窗
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
touchClose | boolean | 觸摸遮罩是否關閉模態彈窗 | true | 否 |
image | string | 廣告圖片地址 | '' | 是 |
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.poster.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.poster.js"></script>
示例:
aui.poster({
image: 'https://xbjz1.oss-cn-beijing.aliyuncs.com/upload/default/share.png'
});
sidemenu側滑菜單
參數 | 類型 | 描述 | 預設值 | 必選 |
---|---|---|---|---|
warp | string | 父容器元素 | 'body' | 否 |
content | string | 側滑菜單元素 | '' | 是 |
moves | arr | 跟隨拖動元素;[header——頁面頭部, .content——頁面內容部分] (moveType設置為"all-move" 或 "menu-move"時,此參數必須配置 | [] | 是 |
moveType | string | ['main-move': '主頁面移動,側滑菜單固定'] ['menu-move': '側滑菜單移動,主頁面固定'] ['all-move': '主頁面+側滑菜單都移動'] | 'main-move' | 否 |
position | string | 側滑菜單初始化位置,預設位於頁面左側 [left: '左側', right: '右側'] | 'left' | 否 |
mask | boolean | 是否顯示遮罩蒙版 | true | 否 |
maskTapClose | boolean | 觸摸遮罩是否關閉側滑菜單 | true | 否 |
speed | number | 打開、關閉頁面速度[值越大,速度越快] | 10 | 否 |
drag | object | { use: true, //--可選參數,是否開啟拖動打開、關閉菜單[true: 開啟 , false: 關閉] start: null, //--可選參數,開始拖動回調 move: null, //--可選參數,拖動中回調 end: null, //--可選參數,拖動結束} | {} | 否 |
style | object | {w: '80vw',h: '100vh',bg: '#333'} | {w: '80vw', h: '100vh', bg: '#333'} | 否 |
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.min.css"/>
<link rel="stylesheet" type="text/css" href="https://aui-js.github.io/aui/css/aui.sidemenu.css"/>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.min.js"></script>
<script type="text/javascript" src="https://aui-js.github.io/aui/js/aui.sidemenu.js"></script>
初始化:
aui.sidemenu.init({
warp: '.aui-container',
content: '#aui-sidemenu-wapper',
position: 'left',
moveType: 'main-move',
moves: ['.aui-container'],
mask: true,
maskTapClose: true,
drag: {
use: true,
//start: _this.dragcallback,
//move: _this.dragcallback,
end: function(ret){
console.log(ret)
}
},
style: {
w: '70vw',
h: '100vh',
bg: '#333'
},
}).then(function(ret){
console.log(ret)
});
設置配置數據:
aui.sidemenu.setData({ //設置配置數據
position: 'left',
moveType: 'main-move'
}).then(function(ret){
//console.log(ret)
});
打開側滑菜單:
aui.sidemenu.open({
moveType: 'main-move',
speed: 10,
}).then(function(ret){
console.log(ret)
});
關閉側滑菜單:
aui.sidemenu.close({speed: 10}).then(function(ret){
console.log(ret)
});