纯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 相关文章推荐
使用js在页面中绘制表格核心代码
Sep 16 Javascript
js正则表达式中test,exec,match方法的区别说明
Jan 29 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
js判断价格,必须为数字且不能为负数的实现方法
Oct 07 Javascript
JS日程管理插件FullCalendar简单实例
Feb 07 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 Javascript
使用Javascript简单计算器
Nov 17 Javascript
Vue数据绑定简析小结
May 07 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
highcharts.js数据绑定方式代码实例
Nov 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下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python探索之ModelForm代码详解
2017/10/26 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python根据文本生成词云图代码实例
2019/11/15 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python reversed函数及使用方法解析
2020/03/17 Python
冰淇淋店创业计划书范文
2013/12/27 职场文书
初中物理教学反思
2014/01/14 职场文书
社区居务公开实施方案
2014/03/27 职场文书
美化环境标语
2014/06/20 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
作风建设剖析材料
2014/10/06 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
单位考核鉴定意见
2015/06/05 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
详解JS数组方法
2021/11/20 Javascript