一套开源的 Web UI 组件库。采用自身极简的模块化规范,并遵循原生 HTML/CSS/JS 的开发模式,极易上手,开箱即用。非常适合网页界面的快速构建。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

346 lines
7.5 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>下拉菜单 - layui</title>
<link rel="stylesheet" href="../src/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-btn-container" style="padding: 30px 0;">
<button class="layui-btn" id="demo1">
按钮下拉
<i class="layui-icon layui-icon-down layui-font-12"></i>
</button>
<button class="layui-btn layui-btn-primary" id="demo2">
按钮下拉
<i class="layui-icon layui-icon-down layui-font-12"></i>
</button>
</div>
<div class="layui-text">
<a href="javascript:;" id="demo3">文字下拉 <i class="layui-icon layui-icon-down"></i></a>
</div>
<div class="layui-btn-container">
<a href="javascript:;" id="testopen">testopen <i class="layui-icon layui-icon-down"></i></a>
<button class="layui-btn" lay-on="open">open</button>
<button class="layui-btn" lay-on="close">close</button>
</div>
<div class="layui-bg-gray" style="margin-top: 30px; width: 100%; height: 300px; text-align: center;" id="demo20">
<span class="layui-font-gray" style="position: relative; top:50%;">鼠标右键菜单</span>
</div>
</div>
<script src="../src/layui.js"></script>
<script>
layui.use('dropdown', function () {
var dropdown = layui.dropdown;
var util = layui.util;
dropdown.render({
elem: '#demo1',
shade: [0.1, '#ddd'],
//,align: 'right'
data: [
{
title: 'menu item 1',
templet:
'<i class="layui-icon layui-icon-light"></i> {{= d.title }} <span class="layui-badge-dot"></span>',
id: '',
href: '',
type: '' //菜单类型,支持:normal/group/parent
},
{
title: 'menu item <strong>2</strong>',
templet:
'<img src="https://unpkg.com/outeres@0.1.1/demo/avatar/0.png" style="width: 16px;"> {{- d.title }}',
id: '',
href: 'https://www.layui.com/',
target: '_blank'
},
{ type: '-' },
{},
{
title: 'menu item 3 <hello>',
id: '',
type: 'group',
child: [
{
title: 'menu item 3-1',
id: ''
},
{
title: 'menu item 3-2',
id: '',
child: [
{
title: 'menu item 3-2-1',
id: ''
},
{
title: 'menu item 3-2-2',
id: '',
type: 'group',
child: [
{
title: 'menu item 3-2-2-1',
id: ''
},
{
title: 'menu item 3-2-2-2',
id: ''
}
]
},
{
title: 'menu item 3-2-3',
id: ''
}
]
},
{
title: 'menu item 3-3',
id: '',
type: 'group',
child: [
{
title: 'menu item 3-3-1',
id: ''
},
{
title: 'menu item 3-3-2',
id: '',
child: [
{
title: 'menu item 3-3-2-1',
id: ''
},
{
title: 'menu item 3-3-2-2',
id: ''
},
{
title: 'menu item 3-3-2-3',
id: ''
}
]
},
{
title: 'menu item 3-3-3',
id: ''
}
]
}
]
},
{ type: '-' },
{
title: 'menu item 4',
id: ''
},
{
title: 'menu item 5',
id: '',
child: [
{
title: 'menu item 5-1',
id: '',
child: [
{
title: 'menu item 5-1-1',
id: ''
},
{
title: 'menu item 5-1-2',
id: ''
},
{
title: 'menu item 5-1-3',
id: ''
}
]
},
{
title: 'menu item 5-2',
id: ''
},
{
title: 'menu item 5-3',
id: ''
}
]
},
{ type: '-' },
{
title: 'menu item 6',
id: '',
type: 'group',
isSpreadItem: false,
child: [
{
title: 'menu item 6-1',
id: ''
},
{
title: 'menu item 6-2',
id: ''
},
{
title: 'menu item 6-3',
id: ''
}
]
}
],
id: 'demo1',
// 触发点击事件的元素范围 --- default: 仅子菜单触发点击事件(默认,可不填); all: 所有父子菜单均触发点击事件
clickScope: 'all',
// 菜单被点击的事件
click: function (obj) {
console.log(obj);
}
});
var inst = dropdown.render({
elem: '#demo2',
// ,show: true
data: [
{
title: 'menu item 1',
href: '#1',
disabled: true
},
{
title: 'menu item 2(点击不关闭)',
href: '#2',
id: 'bbb'
},
{
title: 'menu item 3',
href: '#3'
}
],
click: function (data, othis) {
console.log(data);
if (data.id === 'bbb') {
return false;
}
},
ready: function () {
console.log(arguments);
},
close: function () {
console.log('demo2', this.elem);
}
});
dropdown.render({
elem: '#demo3',
content: '自定义内容 123 ',
style: 'background:#666;color:#fff;padding:15px;',
align: 'center',
trigger: 'hover',
close: function () {
console.log('demo3', this.elem);
}
});
//右键
dropdown.render({
elem: document, //'#demo20' //也可绑定到 document,从而重置整个右键
trigger: 'contextmenu', //contextmenu
isAllowSpread: false,
//,style: 'width: 200px'
customName: {
children: 'children'
},
data: [
{
title: 'menu item 1',
id: '#1'
},
{
title: 'menu item 2',
id: 'reload'
},
{ type: '-' },
{
title: 'menu item 3',
id: '#3',
children: [
{
title: 'menu item 3-1',
id: '#1'
},
{
title: 'menu item 3-2',
id: '#2'
},
{
title: 'menu item 3-3',
id: '#3'
}
]
},
{ type: '-' },
{
title: 'menu item 4',
id: ''
},
{
title: 'menu item 5',
id: '#1'
},
{
title: 'menu item 6',
id: '#1'
}
],
click: function (obj, othis) {
if (obj.id === 'reload') {
location.reload();
}
}
});
dropdown.render({
elem: '#testopen',
id: 'testopen',
trigger: "manual",
data: [{ id: "refresh", title: "刷新"}]
});
util.on({
open: function(){
dropdown.open('testopen')
},
close: function(){
dropdown.close('testopen')
}
},
{trigger: 'mouseenter'});
return;
dropdown.render({
elem: document,
content: '123'
});
});
</script>
</body>
</html>