Bla*_*ger 6 javascript css jquery html5
我在垂直列中构建了一个相当普通的菜单子菜单 - 嵌套的UL,slideToggle用于展开和折叠子菜单.
我试图解决的问题是子菜单在最后"跳"开的方式.(我正在测试最新版本的Chrome.)在第二个子菜单"好处"中,这可能是最值得注意的.当菜单折叠时,它不会跳转,只有当它们正在扩展时才会跳转.
我认为问题可能与:after仅在菜单完全展开时添加的样式有关.具体来说,current一旦菜单完全展开,该类就会添加到LI标签中.但是注释掉切换该类的代码似乎没有任何效果.
http://jsfiddle.net/mblase75/5gGum/
JS:
$(document).ready(function() {
$('#group-subnav > ul > li > a').on('click', function(e) {
e.preventDefault();
var $li = $(this).closest('li');
$li.find('ul').slideToggle('', function() {
$li.toggleClass('current')
}).end().siblings().find('ul').slideUp('', function() {
$li.siblings().removeClass('current')
}).end();
});
});?
Run Code Online (Sandbox Code Playgroud)
CSS相当可观,HTML也不起眼.
use*_*654 15
为要滑动的元素提供设置的宽度.
#group-subnav > ul > li > ul {
display: none;
background: #f4e693;
padding: 2em 0;
width: 159px;
}
Run Code Online (Sandbox Code Playgroud)
这允许jQuery准确计算结束高度.
作为参考,我从这里了解了这个小技巧:http://www.bennadel.com/blog/2263-Use-jQuery-s-SlideDown-With-Fixed-Width-Elements-To-Prevent-Jumping.htm
小智 5
我知道这是一个老问题,但也许我的解决方案可以帮助其他一些谷歌员工。
对我来说,问题是由填充和框大小引起的:边框框。
我不需要特定的高度或宽度(两者都试过,最后删除了它们),盒子大小就行了。
box-sizing:content-box;
padding: 20px;
Run Code Online (Sandbox Code Playgroud)
这个剪辑对我的滚动框有用。请注意,没有填充的 box-sizing:border-box 不会导致任何问题。
JQuery 版本是 1.7.1
| 归档时间: |
|
| 查看次数: |
11139 次 |
| 最近记录: |