mirror of https://github.com/layui/layui
				
				
				
			
		
			
				
	
	
		
			373 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			373 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			HTML
		
	
	
<!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="ID-dropdown-demo-contextmenu">
 | 
						||
    <span class="layui-font-gray" style="position: relative; top:50%;">鼠标右键菜单</span>
 | 
						||
  </div>
 | 
						||
  <button class="layui-btn" style="margin-top: 15px;" lay-on="contextmenu">
 | 
						||
    开启全局右键菜单
 | 
						||
  </button>
 | 
						||
 | 
						||
</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: '#ID-dropdown-demo-contextmenu', // 也可绑定到 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();
 | 
						||
      }
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  util.on({
 | 
						||
    // 改变触发右键菜单的目标元素
 | 
						||
    contextmenu: function(othis){
 | 
						||
      var ID = 'ID-dropdown-demo-contextmenu';
 | 
						||
      if (!othis.data('open')) {
 | 
						||
        dropdown.reload(ID, {
 | 
						||
          elem: document // 设置全局元素右键
 | 
						||
        });
 | 
						||
 | 
						||
        othis.html('取消全局右键菜单');
 | 
						||
        othis.data('open', true);
 | 
						||
      } else {
 | 
						||
        dropdown.reload(ID, {
 | 
						||
          elem: '#'+ ID // 设置局部元素右键
 | 
						||
        });
 | 
						||
 | 
						||
        othis.html('开启全局右键菜单');
 | 
						||
        othis.data('open', false);
 | 
						||
      }
 | 
						||
    }
 | 
						||
  });
 | 
						||
 | 
						||
  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>
 |