一个仿ios原生弹出菜单组组件,可以定制内容及控制方式
快速使用¶
1.样式依赖¶
如果你有sass编译环境,可以通过 LegoUI-mobi Github 克隆一份_lego.scss
文件到你的sass目录下
然后用引入该scss,并且@include mod-popupMenu;
// 引入LegoUI-mobi
@import 'lego';
// 引用弹出菜单组件mixin
@include mod-popupMenu;
如果没安装sass,你也可以直接在 head
里面引入 mod.popupMenu.css
文件
<head>
...
<link rel="stylesheet" href="http://assets.dwstatic.com/legomobi/3.0.0/css/mod.popupMenu.css">
</head>
2.最佳实践¶
组件依赖 seajs
, 调用组件前必须引入 sea-lego.js
文件
<body>
...
<script src="http://assets.dwstatic.com/mobile/src/js/main/seajs/sea-lego.js" id="seajsnode"></script>
</body>
如果你已经在项目中使用了seajs,你可以直接extand一份config配置来使用
seajs.config({
paths: {
'legoPath': 'http://assets.dwstatic.com/mobile/src/js/',
'modulePath': 'http://assets.dwstatic.com/legomobi/3.0.0/js/'
},
alias: {
'zepto': 'legoPath/main/zepto/zepto.min.js',
'touch': 'legoPath/main/zepto/zepto.touch.js',
'iscroll': 'legoPath/module/iscroll/iscroll.js'
}
});
注意: paths
的配置是依赖必须的, alias
中的配置项如果你在项目中已有使用,你可以选择使用自己项目的路径或者使用CDN上的路径
调用方式1:你可以直接在页面中通过 seajs.use()
来调用该组件
<script>
seajs.use(['modulePath/popupMenu'], function(PopupMenu) {
var popupMenu = new PopupMenu('#popupMenu',{
itemList: ['菜单1','菜单2','菜单3'],
trigger: 'click',
height: 40,
fontSize: 14,
padding: 15,
bgColor: '#000',
borderColor: '#fff',
itemEvent: function(i){
if(i==0) alert('点击了菜单1');
else if(i==1) alert('点击了菜单2');
}
}).show();
});
</script>
调用方式2:也可以在自定义的模块中通过 require
来调用
define(function(require, exports, module) {
var PopupMenu = require('modulePath/popupMenu');
var popupMenu = new PopupMenu('#popupMenu',{
itemList: ['菜单1','菜单2','菜单3'],
trigger: 'click',
height: 40,
fontSize: 14,
padding: 15,
bgColor: '#000',
borderColor: '#fff',
itemEvent: function(i){
if(i==0) alert('点击了菜单1');
else if(i==1) alert('点击了菜单2');
}
}).show();
});
注意:初始化 new PopupMenu(selector,options)
中第一个参数为组件依赖容器,一般为设置了弹出菜单组件的元素
配置说明¶
1.属性列表¶
options.itemList Array
¶
该属性设置弹出菜单的菜单项列表,内容是文本 String
Default: ['菜单1','菜单2','菜单3']
options.trigger String
¶
该属性设置触发菜单的事件类型,可选值为: click
tap
longTap
doubleTap
Default: tap
options.height Number
¶
该属性设置菜单项的高度,单位是 px
Default: 40
options.fontSize Number
¶
该属性设置菜单项字体的大小,单位是 px
Default: 14
options.padding Number
¶
该属性设置菜单项字体的左右间距,单位是 px
Default: 15
options.bgColor String
¶
该属性设置弹出菜单的背景颜色,支持rgba
Default: #000
options.borderColor String
¶
该属性设置菜单项的边框颜色
Default: #fff
2.事件列表¶
itemEvent Callback
¶
菜单项被点击时触发的事件回调,事件接收一个参数(触发事件的菜单项的index,从0开始)
itemEvent: function(i){
if(i==0) alert('点击了菜单1');
else if(i==1) alert('点击了菜单2');
}
3.方法列表¶
show() Method
¶
使用 popupMenu.show()
来控制弹出菜单显示
hide() Method
¶
使用 popupMenu.hide()
来控制弹出菜单隐藏
查看Demo¶
chrome模拟器查看 Demo