作者aoika (ka)
看板Ajax
标题Re: [问题] 三层accordion问题
时间Wed May 16 22:09:10 2012
谢谢版友的指导,让我清楚很多
接下来我又遇到一个问题
我想让他长度长的话,有个scrollbar
先用网路上的范例
http://www.scriptiny.com/2009/09/javascript-scrollable-div/
自己套上之後,发现在
#scrollcontent ul
#accordion li ul.content{
margin:6px 0;
display:none;
}
出了问题,如果有了display:none;
则卷轴不会出现。
如果没有了display:none;
一切正常,可是会呈现都打开的状况
以下是我的code,在这方面,跟js有关系吗
http://jsfiddle.net/yJWJU/
谢谢
※ 引述《s25g5d4 (死城盗贼)》之铭言:
: 要给他正确的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 同时上色
: 这样就会变整条绿色了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.231.135.131