没事写个玩玩,觉得jQ的动画功能也很强大。
Demo:http://www.zhangjingwei.com/demo/listview/
$(document).ready(function() { $('#wrap ul.unviewable').hide(); $('#wrap h2').hover(function() { $(this).css({ 'cursor': 'pointer', 'background': '#047' }); }, function() { $(this).css({ 'cursor': 'default', 'background': '#046' }); }) }) $('#wrap h2').click(function() { var id = this.id; if ($(this).next().attr('class') != 'viewable') { $('#wrap ul.viewable').slideUp('slow', function() { $(this).attr({ 'class': 'unviewable' }).hide(); }); $('#' + id).next().slideDown('slow', function() { $(this).attr({ 'class': 'viewable' }).css({ height: 'auto' }); }); } })
ul, li, h2 { margin:0; padding:0; } li { list-style:none; } #wrap { width:300px; border:1px solid #000; padding:1px; } #wrap h2 { padding: 2px 10px 3px 10px; border: 2px outset #5AA0B8; background: #046; color: #FFF; height: 19px; vertical-align: bottom; font:14px/1.6 Arial, Helvetica, sans-serif; } #wrap ul { height:auto; } #wrap ul li {/*display:inline;*/ padding-left:10px; } #wrap ul li a { font:12px/1.6 Arial, Helvetica, sans-serif; text-decoration:none; }
<ul id="wrap">
<li>
<h2 id="arms">武器特色</h2>
<ul class="viewable">
<li><a href="#">3</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
</ul>
</li>
<li>
<h2 id="equip">装备特色</h2>
<ul class="unviewable">
<li><a href="#">2</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
</ul>
</li>
<li>
<h2 id="other">其他特色</h2>
<ul class="unviewable">
<li><a href="#">1</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
<li><a href="#">弓箭</a></li>
<li><a href="#">火枪</a></li>
<li><a href="#">宝剑</a></li>
<li><a href="#">大刀</a></li>
<li><a href="#">长枪</a></li>
</ul>
</li>
</ul>
sniffer
五月 28th, 2009 @ 10:25
用toggle实现开关不更简洁?
回复
阿呆
十月 9th, 2009 @ 16:36
是写的挺麻烦的
回复
张经纬 reply on 十月 9th, 2009 20:23:
是的,当时用的还不熟悉。:)
回复
阿呆
十月 9th, 2009 @ 16:42
$(document).ready(function() {
$(‘h2′).click(function() {
$(this).next(‘ul’).slideToggle(‘fast’)
.siblings(‘div:visible’).slideUp(‘fast’);
});
回复
张经纬 reply on 十月 9th, 2009 20:27:
这个写法有问题,第一原思路对打开的不操作,这里没体现。第二,从你代码内的意思,可能你对siblings()方法的理解有误解,$(this).siblings()取得的是当前li内的另外一个ul元素,而不是其他li内的ul元素。
回复