纯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 BASE64编码 window.atob(), window.btoa()
Mar 09 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 Javascript
js移除事件 js绑定事件实例应用
Nov 28 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
Dec 09 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
Nov 27 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
js实现的四级左侧网站分类菜单实例
May 06 Javascript
原生js获取元素样式的简单方法
Aug 06 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
详解TS数字分隔符和更严格的类属性检查
May 06 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 getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
php搜索文件程序分享
2015/10/30 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
详解Python装饰器
2019/03/25 Python
django的settings中设置中文支持的实现
2019/04/28 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
家长写给孩子的评语
2014/04/18 职场文书
学生期末评语大全
2014/04/30 职场文书
运动会方阵口号
2014/06/07 职场文书
汽修专业自荐信
2014/07/07 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
服装店员工管理制度
2015/08/07 职场文书
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers