作者s25g5d4 (死城盗贼)
看板Ajax
标题Re: [问题] 三层accordion问题
时间Fri May 11 22:21:16 2012
推 s25g5d4:http://jsfiddle.net/RmBxB/1/ 这是我的写法 05/10 23:35
昨天母亲大人叫我早点睡 只好匆匆改完你的code就跑了 没有解释我的想法
首先先奉上刚刚改好的第二版
http://jsfiddle.net/RmBxB/3/
刚看到你的html时 其实我觉得有点乱 实际上并不需要那麽多div
你可以全部都用div做巢状结构这样html看起来会很整齐、漂亮
或是也可以用ul li让html语意更强烈 另外class是可以累加上去的
总之我重新组织了你的html 简化多余的部分 并且加入多个accordion支援
相对来说css也要修改 其中比较重要的是
#Nav ul.accordionPart{
width:197px;
margin:0;
background: #313132;
color: #fdfdfd;
text-decoration: none;
text-shadow: 0px 1px 0px rgba(0,0,0, .35);
display: inline-block;
float:left;
box-shadow: inset 0px 1px 0px 0px rgba(255,255,255, .1), 0px 1px 0px 0px
rgba(0,0,0, .1);
}
这里的display:inline-block;以及float:left;
可以让多个ul.accordionPart 往右横向排列
同时在
#Nav {
width:394px;
margin:0 auto;
}
要给他正确的width 以及margin 这样才能将其置中
#Nav .accordionPart li ul.content {/*隐藏所有子选单 以及设定子选单之margin*/
margin: 6px 0;
display:none;
}
还有script里的hover( addClass("menu_on"); [让我省略一下 :)]
其实这个用css就能达成了 只要在selector後面加上:hover
就能设定当滑鼠移过去时要显示的样式
秉持着js能省的部分就省(效能关系) 所以就把hover改用css解决了 :)
同理.siblings().hide()透过display:none也能解决
所以最後的script部分只剩下slideToggle部分 节省不少
其他css的变动应该参照我的注解就能了解了 有问题欢迎提出来
再来回到你原本的问题(以及原本的code) 第一个是第三层之content不会变绿色
主要是你的selector并没有选到第三层的div.content
$('#Nav ul.accordionPart li div.menu').hover(function(){
^^^^^^^^ 实际上你只有选到div.menu
所以div.content是不会有反应的
第二个问题是hover第二层时 上色左边会留空 而没有填满整条
那是因为如上述你选择的是div.menu
所以你选择到的是第二层的<div class="menu">aa</div>
并且对他做上色 实际上他是有填满整条的
但是因为他位於ul.accordionPart li div.content下
这里你的css写了一条padding-left:10px; 所以造成他左边留空了10px
其实不用在ul.accordionPart li div.content时就给他padding-left:10px
你可以在第二层的div.menu再给他padding-left:10px 同时上色
这样就会变整条绿色了
※ 引述《aoika (ka)》之铭言:
: 标题: [问题] 三层accordion问题
: 时间: Thu May 10 22:24:37 2012
:
: 新手有点问题想发问
:
: 目前做出了三层的accordion选单,都可以跑
: 可是在特效上似乎出现一些问题
:
: 1.如何在滑过任何一层时,绿色长度固定都一样?
: (在这边试过很多次,为了让1.2.3层有前後之分做了padding,
: 但是之後的menu_on都会缩短,无法每一层都同长)
:
: 2.如何在滑到第3层aaa时,仍有绿色特效?
:
: 以下是我的程式码
: http://jsfiddle.net/PDSDG/3/
:
:
: 不知道是哪里出错了,好像是在menu_on那边无法判断
: 可以请大家帮我看一下吗
: 谢谢大家
--
→ asdfg0612:3.4楼是甚麽鬼梗 ( ̄ー ̄;) 01/29 10:51
推 key0077:亻也 曰 弓长 父 01/29 10:51
1F:→ key0077: 疋 巴 01/29 10:51
2F:→ key0077: 骨葬 01/29 10:52
文章代码(AID):
#1F9B9uQM (C_Chat) [ptt.cc] [公告] art33 水桶20年
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.251.59
3F:推 aoika:了解了,非常谢谢!!十分清楚的解说:) 05/14 20:36