我目前正在做一个项目,我想创建一个 HTML 帮助页面,为我的用户提供有关如何使用该应用程序的帮助和建议。
我想要实现的是树形布局,因此在左侧它的所有标题旁边都有一个加号。然后,当用户单击加号按钮或文本时,它会扩展该部分的相关内容。如果用户然后再次单击它,那么现在显示的所有项目都将重新隐藏。
我还没有找到任何关于如何做到这一点的像样的教程。
感谢您的任何帮助,您可以提供。
我目前正在做一个项目,我想创建一个 HTML 帮助页面,为我的用户提供有关如何使用该应用程序的帮助和建议。
我想要实现的是树形布局,因此在左侧它的所有标题旁边都有一个加号。然后,当用户单击加号按钮或文本时,它会扩展该部分的相关内容。如果用户然后再次单击它,那么现在显示的所有项目都将重新隐藏。
我还没有找到任何关于如何做到这一点的像样的教程。
感谢您的任何帮助,您可以提供。
您可以使用 jquery、mootools 或其他 js 库来完成。
但如果你想自己做,试试这个:
假设您有一些这样的列表:
<div><a id="cat1" onclick="toggle(this.id)">first cat</a>
<ul id="content1">
<li>text1</li><li>text2</li>
</ul></div>
<div><a id="cat2" onclick="toggle(this.id)">second cat</a>
<ul id="content2">
<li>text1</li><li>text2</li>
</ul></div>
这是js:
function toggle(obj)
{
var con = document.getElementById("content"+obj.substr(3));
if (con.style.display=="none") con.style.display="block"; else con.style.display="none";
}
这是一个非常简单的代码,如果你尝试,你可以做得更好。
正如你所描述的,我花了一些时间来建立一个快速的树系统。有趣的小运动。复制粘贴,在浏览器中打开(我使用的是 FireFox)。如果您愿意,可以将 DIV 标签中的 +/- 符号更改为图像。调整 CSS 边距和内边距,使其无缝衔接。希望这可以帮助。
祝你好运。
<html>
<head>
<style type="text/css">
div#tree ul { margin:0 0 0 20px; padding:0; list-style-type:none; }
div#tree ul { display:none; }
div#tree li>div { display:inline; margin-right:5px; cursor:pointer; }
div#tree label:hover { text-decoration:underline; cursor:pointer; }
div#tree>ul { display:block; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function () {
//Set plus sign for all sub menus
$('li:has("ul")>div').html('+');
//Handle plus/minus tree expansion
$('li>div').on('click', function (e) {
if($(this).parent('li').hasClass('selected')) {
$(this).siblings('ul').slideUp();
$(this).parent('li').removeClass('selected');
$(this).html('+');
} else {
$(this).siblings('ul').slideDown();
$(this).parent('li').addClass('selected');
$(this).html('−')
}
})
//Handle tree item link stored as LI data attribute
$('li>label').on('click', function (e) {
//This is your URL, URI, Link, Location, etc
alert($(this).parent('li').attr('data-location'))
})
});
</script>
</head>
<body>
<div id="tree">
<ul>
<li data-location=""><div>⌊</div><label>First Level Item1</label></li>
<li data-location=""><div>⌊</div><label>First Level Item2</label></li>
<li data-location=""><div>⌊</div><label>First Level Item3</label></li>
<li data-location=""><div>⌊</div><label>First Level Item4</label></li>
<li data-location=""><div>⌊</div><label>First Level Item5</label>
<ul>
<li data-location=""><div>⌊</div><label>Second Level Item1</label></li>
<li data-location=""><div>⌊</div><label>Second Level Item2</label></li>
<li data-location=""><div>⌊</div><label>Second Level Item3</label></li>
<li data-location=""><div>⌊</div><label>Second Level Item4</label></li>
<li data-location=""><div>⌊</div><label>Second Level Item5</label>
<ul>
<li data-location=""><div>⌊</div><label>Third Level Item1</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item2</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item3</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item4</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item5</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item6</label></li>
<li data-location=""><div>⌊</div><label>Third Level Item7</label></li>
</ul>
</li>
<li data-location=""><div>⌊</div><label>Second Level Item6</label></li>
</ul>
</li>
<li data-location=""><div>⌊</div><label>First Level Item6</label></li>
<li data-location=""><div>⌊</div><label>First Level Item7</label></li>
<li data-location=""><div>⌊</div><label>First Level Item8</label></li>
<li data-location=""><div>⌊</div><label>First Level Item9</label></li>
<li data-location=""><div>⌊</div><label>First Level Item10</label></li>
<li data-location=""><div>⌊</div><label>First Level Item11</label></li>
</ul>
</div>
</body>
</html>
有很多框架都内置了这些组件。检查 ExtJS、Dojo 或任何其他 RIA 框架,看看它是否可以在您的项目中工作。有一点学习曲线,但是一旦你学会了,你的代码库就会更易于管理。
http://www.sencha.com/products/extjs/examples/ http://cdn.sencha.com/ext-4.1.1a-gpl/examples/tree/treegrid.html