为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
MNPopups 封装了一个带有指针的弹出气泡式菜单。开发者可通过制定指针位置来自定义气泡弹出位置及其方向。亦可通过 open 接口内 styles 参数 pointer 字段来指定指针在弹出气泡的位置。
本插件所弹出的菜单依附于当前主窗口,其生命周期也同当前主窗口。点击非菜单区域可以动画的形式隐藏该菜单栏。同时支持列表项的增、删、改,支持批量更新数据。
如果列表项太多而超过插件弹出气泡区域,则用户可上下滚动查看。若开发者指定的参数使气泡菜单超出当前屏幕,则插件内部会自动重新调整该气泡的布局,使其显示在当前屏幕可视区域以内。
插件示例截图如下:
打开
open({params}, callback(ret, err))
rect:
{
w: 100, //(可选项)数字类型;弹出插件的宽度;默认值:100
h: 180 //(可选项)数字类型;弹出插件的高度;默认值:180
}
position:
{
x: api.winWidth-10, //(可选项)数字类型;弹出插件指针在弹框坐标系的 x 坐标,;默认值:主窗口宽度-10
y: 0 //(可选项)数字类型;弹出插件指针在弹框坐标系的 y 坐标;默认值:0
}
animationStartPoint:
{
x: 0, //(可选项)数字类型;动画的起始位置 x 坐标(iOS为相对于position参数),;默认值:0
y: 0 //(可选项)数字类型;动画的起始位置 y 坐标(iOS为相对于position参数);默认值:0
}
animation:
animationDuration:
styles:
{
mask: 'rgba(0,0,0,0.2)', //(可选项)字符串类型;遮罩层背景,支持 rgb、rgba、#;默认:rgba(0,0,0,0.2)
bg: '#fff', //(可选项)字符串类型;列表背景,支持rgb、rgba、#;默认:#fff
corner: 5, //(可选项)数字类型;弹出气泡框的圆角大小;默认:0
cell: { //(可选项)列表项的样式配置
bg:{ //(可选项)JSON对象;背景配置
normal: '', //(可选项)字符串类型;列表项的背景,支持rgb、 rgba、#、img;默认:#fff
highlight: '' //(可选项)字符串类型;列表项的高亮背景,支持 rgb、rgba、#、img;默认:bg
},
h: 45, //(可选项)数字类型;列表项的高度;默认:45
title: { //(可选项)JSON 类型;列表项标题样式设置,上下居中显示
marginL: 45, //(可选项)数字类型;列表项标题相对于列表项左边的间距大小;默认:45
color: '#636363', //(可选项)字符串类型;列表项标题文字颜色,支持rgb、rgba、#;默认:#636363
size: 12, //(可选项)数字类型;列表项标题字体大小;默认:12
textAlign:left; //(可选项)字符串;列表标题对齐方式;默认:left;取值范围:
// left 居左
// right 居右
// center 居中
},
icon: { //(可选项)JSON 类型;列表项图标的样式设置,上下居中
marginL: 10, //(可选项)数字类型;图标相对于列表项左边的间距大小;默认:10
w: 25, //(可选项)数字类型;图标的宽度;默认:25
h: 25, //(可选项)数字类型;图标的高度;默认:同 w
corner: 2 //(可选项)数字类型;图标的圆角半径;默认:2
},
separateLine: { //(可选项)JSON 类型;分割线的样式设置
width: 1, //(可选项)数字类型;分割线的粗细,默认为1
marginLR: 0, //(可选项)数字类型;分割线距离左右的间距,默认为0
bg: '#C0C0C0', //(可选项)字符类型;分割线的背景颜色,支持rgb、rgba、#;默认:#C0C0C0
hideLastSeparateLine: false //(可选项)布尔类型;是否隐藏最后一条分割线,默认false
}
},
pointer: { //(可选项)JSON类型;尖角配置
size: 7, //(可选项)数字类型;尖角大小,该尖角为等边三角形,本参数为该三角形边长;默认:7
xPercent: 90, //(可选项)数字类型;尖角底边中点 x 坐标占插件宽度的百分比;默认:90
yPercent: 0, //(可选项)数字类型;尖角底边中点 y 坐标占插件高度的百分比;默认:0
orientation: 'downward' //(可选项)字符串类型;气泡菜单弹出方向,取值范围如下:
// upward:向上弹出
// downward:向下弹出
// leftward:向左边弹出
// rightward:向右边弹出
},
badge:{ // (可选项)JSON类型;配置badge
size:10, // (可选项)数字类型;badge大大小
color:'' // (可选项)字符串类型;badge的背景色
}
}
datas:
[{
title: '添加朋友', //字符串类型;列表标题文字
icon: 'fs://creater.png', //字符串类型;图标地址,支持本地路径(widget://、fs://)
hasBadge:false // 布尔类型;是否有badge
}]
border:
{
size: 0.5, //数字类型;边框粗细;默认:0.5
color: '#fff' //字符串类型;边框颜色,支持rgb、rgba、#;默认:#fff
}
ret:
{
eventType: 'show', // 字符串类型;交互事件类型,取值范围如下:
// show:插件加载成功并显示在屏幕上的事件(show接口不会触发此事件)
// click:点击菜单列表项
index: 0 // 数字类型;点击目标对应菜单列表项的索引,仅当 eventType 为 click 时有效
}
var mnPopups = api.require('MNPopups');
mnPopups.open({
rect: {
w: 100,
h: 180
},
position: {
x: api.winWidth - 10,
y: 0
},
styles: {
mask: 'rgba(0,0,0,0.2)',
bg: '#eee',
cell: {
bg: {
normal: '',
highlight: ''
},
h: 45,
title: {
marginL: 45,
color: '#636363',
size: 12,
},
icon: {
marginL: 10,
w: 25,
h: 25,
corner: 2
}
},
pointer: {
size: 7,
xPercent: 90,
yPercent: 0,
orientation: 'downward'
}
},
datas: [{
title: '添加朋友',
icon: 'fs://MNPopups/addFriends.png'
}, {
title: '扫一扫',
icon: 'fs://MNPopups/scan.png'
}, {
title: '面对面快传',
icon: 'fs://MNPopups/send.png'
}],
animation: true
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
刷新 MNPopups 列表数据
reloadData({params})
datas:
[{
title: '添加朋友', //字符串类型;列表标题文字
icon: 'fs://creater.png', //字符串类型;图标地址,支持本地路径(widget://、fs://)
hasBadge:false //布尔类型;是否显示badge,默认:false
}]
var mnPopups = api.require('MNPopups');
mnPopups.reloadData({
datas: [{
title: '添加群',
icon: 'fs://MNPopups/addGroup.png'
}, {
title: '发送到电脑',
icon: 'fs://MNPopups/sendComputer.png'
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
从菜单列表中移除指定索引的数据
deleteItem({params})
index:
var mnPopups = api.require('MNPopups');
mnPopups.deleteItem({
index: 1
});
iOS系统,Android系统
可提供的1.0.0及更高版本
从菜单列表中的指定位置插入数据
insertItem({params})
index:
data:
{
title: '创建群组', //字符串类型;列表标题文字
icon: 'fs://creater.png' //字符串类型;图标地址,支持本地路径(widget://、fs://)
}
var mnPopups = api.require('MNPopups');
mnPopups.insertItem({
index: 1,
data: {
title: '创建讨论组',
icon: 'fs://creater.png'
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
更新指定分组中指定位置的数据
updateItem({params})
index:
data:
{ //JSON 数组类型;菜单列表项的数据
title: '添加朋友', //字符串类型;列表标题文字
icon: 'fs://creater.png' //字符串类型;图标地址,支持本地路径(widget://、fs://)
}
var mnPopups = api.require('MNPopups');
mnPopups.updateItem({
index: 1,
data: {
title: '付款',
icon: 'fs://MNPopups/pay.png'
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭 MNPopups 列表视图
close()
var obj = api.require('MNPopups');
obj.close();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示已隐藏的 MNPopups 列表视图
show()
var mnPopups = api.require('MNPopups');
mnPopups.show();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏 MNPopups 列表视图,并没有从内存里清除
hide()
示例代码
var mnPopups = api.require('MNPopups');
mnPopups.hide();
iOS系统,Android系统
可提供的1.0.0及更高版本