纯javascript响应式树形菜单效果


Posted in Javascript onNovember 10, 2015

简要教程
aimaraJS是一款非常实用的纯javascript响应式多级目录树结构插件。该目录树可以动态添加和删除树节点,可以制作多级树结构,每个节点上可以都带有右键上下文菜单,并且每个节点上都可以配置不同的图标。它的特点有:

  • 可以创建一个基本的树结构并渲染它。
  • 可以实时添加和删除树节点。
  • 可以显示不同的树节点图标。
  • 在树节点打开和关闭的时候可以自定义事件。
  • 每个树节点上都可以制作右键上下文菜单。

 纯javascript响应式树形菜单效果

使用方法
使用该幻灯片插件需要在页面中引入Aimara.css和Aimara.js文件。

<link rel="stylesheet" href="css/Aimara.css" />
<script src="js/Aimara.js"></script>

 HTML结构

可以使用一个空的<div>来作为这个目录树的容器。

<div id="div_tree"></div>

JAVASCRIPT

然后你可以通过下面的方法来初始化该目录树插件。你可以创建一些树节点和子节点,然后渲染它们。节点可以在树被渲染之前或之后添加到树结构中。

<script type="text/javascript">
  window.onload = function() {
    //创建树结构
    var tree = createTree('div_tree','white');
    //创建树节点node1
    var node1 = tree.createNode('First node',false,'images/star.png',null,null,null);
    //node1添加到树结构中
    node1.createChildNode('First child node', false, 'images/blue_key.png',null,null);
    //渲染树结构
    tree.drawTree();
    //创建第二个树节点
    node1 = tree.createNode('Second node',false,'images/star.png',null,null,null);
    node1.createChildNode('Second child node', false, 'images/blue_key.png',null,null);
  };
</script>

为树节点创建上下文菜单

可以通过下面的方法来创建一个右键上下文菜单。

var contex_menu = {
 'context1' : {
  elements : [
   {
    text : 'Node Actions',
    icon: 'images/blue_key.png',
    action : function(node) {
 
    },
    submenu: {
     elements : [
      {
       text : 'Toggle Node',
       icon: 'images/leaf.png',
       action : function(node) {
        node.toggleNode();
       }
      },
      {
       text : 'Expand Node',
       icon: 'images/leaf.png',
       action : function(node) {
        node.expandNode();
       }
      },
      {
       text : 'Collapse Node',
       icon: 'images/leaf.png',
       action : function(node) {
        node.collapseNode();
       }
      },
      {
       text : 'Expand Subtree',
       icon: 'images/tree.png',
       action : function(node) {
        node.expandSubtree();
       }
      },
      {
       text : 'Collapse Subtree',
       icon: 'images/tree.png',
       action : function(node) {
        node.collapseSubtree();
       }
      },
      {
       text : 'Delete Node',
       icon: 'images/delete.png',
       action : function(node) {
        node.removeNode();
       }
      },
     ]
    }
   },
   {
    text : 'Child Actions',
    icon: 'images/blue_key.png',
    action : function(node) {
 
    },
    submenu: {
     elements : [
      {
       text : 'Create Child Node',
       icon: 'images/add1.png',
       action : function(node) {
        node.createChildNode('Created',false,'images/folder.png',null,'context1');
       }
      },
      {
       text : 'Create 1000 Child Nodes',
       icon: 'images/add1.png',
       action : function(node) {
        for (var i=0; i<1000; i++)
         node.createChildNode('Created -' + i,false,'images/folder.png',null,'context1');
       }
      },
      {
       text : 'Delete Child Nodes',
       icon: 'images/delete.png',
       action : function(node) {
        node.removeChildNodes();
       }
      }
     ]
    }
   }
  ]
 }
};

然后通过下面的方法来初始化树结构:

tree = createTree('div_tree','white',contex_menu);
tree.drawTree();

在树结构渲染之后实时添加一个树节点:

tree.createNode('Real Time',false,'images/leaf.png',null,null,'context1');

 以上就是本文的全部内容,为大家介绍了一款纯js响应式实现树结构菜单栏的特效,希望大家喜欢。

Javascript 相关文章推荐
jquery ready()的几种实现方法小结
Jun 18 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
Apr 25 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 Javascript
Windows下Node.js安装及环境配置方法
Sep 18 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
jquery实现聊天机器人
Feb 08 jQuery
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 #Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 #Javascript
3种js实现string的substring方法
Nov 09 #Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 #Javascript
js中substring和substr两者区别和使用方法
Nov 09 #Javascript
浅析js中substring和substr的方法
Nov 09 #Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 #Javascript
You might like
php+ajax注册实时验证功能
2016/07/20 PHP
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
Python连接Redis的基本配置方法
2018/09/13 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
护士演讲稿范文
2014/01/05 职场文书
经典大学生求职信范文
2014/01/06 职场文书
会计助理岗位职责
2014/02/17 职场文书
法律进学校实施方案
2014/03/15 职场文书
护士工作失误检讨书
2014/09/14 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
担保贷款承诺书
2015/04/30 职场文书
入党转正介绍人意见
2015/06/03 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
MySQL创建管理KEY分区
2022/04/13 MySQL