純javascript響應式樹形菜單效果
簡要教程
aimaraJS是一款非常實用的純javascript響應式多級目錄樹結(jié)構(gòu)插件。該目錄樹可以動態(tài)添加和刪除樹節(jié)點,可以制作多級樹結(jié)構(gòu),每個節(jié)點上可以都帶有右鍵上下文菜單,并且每個節(jié)點上都可以配置不同的圖標。它的特點有:
- 可以創(chuàng)建一個基本的樹結(jié)構(gòu)并渲染它。
- 可以實時添加和刪除樹節(jié)點。
- 可以顯示不同的樹節(jié)點圖標。
- 在樹節(jié)點打開和關(guān)閉的時候可以自定義事件。
- 每個樹節(jié)點上都可以制作右鍵上下文菜單。

使用方法
使用該幻燈片插件需要在頁面中引入Aimara.css和Aimara.js文件。
<link rel="stylesheet" href="css/Aimara.css" /> <script src="js/Aimara.js"></script>
HTML結(jié)構(gòu)
可以使用一個空的<div>來作為這個目錄樹的容器。
<div id="div_tree"></div>
JAVASCRIPT
然后你可以通過下面的方法來初始化該目錄樹插件。你可以創(chuàng)建一些樹節(jié)點和子節(jié)點,然后渲染它們。節(jié)點可以在樹被渲染之前或之后添加到樹結(jié)構(gòu)中。
<script type="text/javascript">
window.onload = function() {
//創(chuàng)建樹結(jié)構(gòu)
var tree = createTree('div_tree','white');
//創(chuàng)建樹節(jié)點node1
var node1 = tree.createNode('First node',false,'images/star.png',null,null,null);
//node1添加到樹結(jié)構(gòu)中
node1.createChildNode('First child node', false, 'images/blue_key.png',null,null);
//渲染樹結(jié)構(gòu)
tree.drawTree();
//創(chuàng)建第二個樹節(jié)點
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>
為樹節(jié)點創(chuàng)建上下文菜單
可以通過下面的方法來創(chuàng)建一個右鍵上下文菜單。
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();
}
}
]
}
}
]
}
};
然后通過下面的方法來初始化樹結(jié)構(gòu):
tree = createTree('div_tree','white',contex_menu);
tree.drawTree();
在樹結(jié)構(gòu)渲染之后實時添加一個樹節(jié)點:
tree.createNode('Real Time',false,'images/leaf.png',null,null,'context1');
以上就是本文的全部內(nèi)容,為大家介紹了一款純js響應式實現(xiàn)樹結(jié)構(gòu)菜單欄的特效,希望大家喜歡。
相關(guān)文章
詳解JavaScript中js對象與JSON格式字符串的相互轉(zhuǎn)換
本篇文章主要介紹了JavaScript中js對象與JSON格式字符串的相互轉(zhuǎn)換,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
fckeditor部署到weblogic出現(xiàn)xml無法讀取及樣式不能顯示問題的解決方法
這篇文章主要介紹了fckeditor部署到weblogic出現(xiàn)xml無法讀取及樣式不能顯示問題的解決方法,分析了問題出現(xiàn)的原因及相關(guān)配置文件設置技巧,需要的朋友可以參考下2017-03-03
關(guān)于取不到由location.href提交而來的上級頁面地址的解決辦法
驗證上級頁面來源取不到由location.href提交而來的頁面地址,搜索了一大堆沒有合適的解決辦法,突然想到通過模擬JS點擊鏈接的方法2009-07-07
TypeScript中定義變量方式以及數(shù)據(jù)類型詳解
TypeScript支持 JavaScript的所有語法和語義,同時通過作為ECMAScript的超集來提供一些額外的功能,如類型檢測和更豐富的語法,這篇文章主要給大家介紹了關(guān)于TypeScript中定義變量方式以及數(shù)據(jù)類型詳解的相關(guān)資料,需要的朋友可以參考下2022-08-08
uniapp實現(xiàn)全局設置字體大小(小中大的字體切換)
隨著UniApp的流行,越來越多的開發(fā)者選擇使用它來構(gòu)建跨平臺應用程序,下面這篇文章主要給大家介紹了關(guān)于uniapp實現(xiàn)全局設置字體大小(小中大的字體切換)的相關(guān)資料,需要的朋友可以參考下2023-06-06

