纯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 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
js实现前端图片上传即时预览功能
Aug 02 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 Javascript
实例解析Vue.js下载方式及基本概念
May 11 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 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
CodeIgniter钩子用法实例详解
2016/01/20 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
老生常谈js数据类型
2017/08/03 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
python实现统计代码行数的方法
2015/05/22 Python
Python中实现三目运算的方法
2015/06/21 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
python自动下载图片的方法示例
2020/03/25 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
检查接待方案
2014/02/27 职场文书
应届毕业生求职信
2014/05/26 职场文书
通信工程求职信
2014/07/16 职场文书
学校消防安全责任书
2014/07/23 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript