纯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 ajax abort()的使用方法
Oct 28 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
js关于命名空间的函数实例
Feb 05 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
微信小程序 获取相册照片实例详解
Nov 16 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
解决vue跨域axios异步通信问题
Apr 17 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
tsconfig.json配置详解
May 17 Javascript
element的el-table中记录滚动条位置的示例代码
Nov 06 Javascript
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
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实现登陆验证码(类似条行码状)
2006/10/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
js尾调用优化的实现
2019/05/23 Javascript
从Python程序中访问Java类的简单示例
2015/04/20 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Python3中列表list合并的四种方法
2019/04/19 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
晚会邀请函范文
2014/01/24 职场文书
社区服务活动总结
2014/05/07 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
营销与策划实训报告
2014/11/05 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书