MyDropdown

原生js实现简洁的下拉菜单

Este script não deve ser instalado diretamente. É uma biblioteca destinada a ser incluída por outros scripts através da diretiva de metadados // @require https://update.greasyfork.org/scripts/463933/1177909/MyDropdown.js

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

Autor
wish king
Versão
0.0.1.20230419042947
Criado
13/04/2023
Atualizado
19/04/2023
Tamanho
20 KB
Licença
N/D

原生js实现简洁的下拉菜单

截图:



在线预览:
https://jsrun.net/3cdKp/embedded/all/light


使用示例:

var clicked = function(e) {
    console.log("clicked", e.target.dataset.value)
}
new MyDropdown({
    el: ".my-dropdown-btn",
    maxWidth: '200px',
    maxHeight: '400px',
    //支持click mouseenter dblclick等,默认click
    toggleEvent: 'mouseenter',
    items: [
        {
            name: 'Home',
            value: 'home',
            icon: '',
            fn: clicked
        },
        {
            name: 'About',
            value: 'about',
            icon: '',
            selected: false,
            fn: clicked
        },
        {
            name: 'Contact',
            value: 'contact',
            icon: '',
            fn: clicked,
            //icon也支持对象传值,同样具有html和fn属性
            op: {
                html: `×`,
                fn: function(e) {
                    console.log('op clicked');
                }
            }
        }
    ],
    created: function(menu) {
        console.log('After created callback1');
    },
    shown: function(menu) {
        console.log('After shown callback1');
    },
    hidden: function(menu) {
        console.log('After hidden callback1');
    }
});