Javascript 如何计算slideToggle()的速度
我有一个导航菜单和几个手风琴风格的项目。一些“父”链接的子链接比其他链接的子链接多。我想改变Javascript 如何计算slideToggle()的速度,javascript,jquery,slidetoggle,jquery-easing,Javascript,Jquery,Slidetoggle,Jquery Easing,我有一个导航菜单和几个手风琴风格的项目。一些“父”链接的子链接比其他链接的子链接多。我想改变slideToggle()的速度,这样孩子越多的孩子到slideDown()的时间就越长。这是我试过的,但出于某种原因,它会跳来跳去。正如你所看到的,根本没有缓和 //获取每个列表的高度并将其保存在数据高度属性中 $('.main nav>ul>li>ul')。每个(函数(){ $(此).slideDown(0); $(this.data('height',$(this.height()); $(此).
slideToggle()
的速度,这样孩子越多的孩子到slideDown()
的时间就越长。这是我试过的,但出于某种原因,它会跳来跳去。正如你所看到的,根本没有缓和
//获取每个列表的高度并将其保存在数据高度属性中
$('.main nav>ul>li>ul')。每个(函数(){
$(此).slideDown(0);
$(this.data('height',$(this.height());
$(此).slideUp(0);
});
$('.main nav>ul>li')。单击(函数(){
//将元件的高度乘以所需的速度
$(this).children().slideToggle($(this).data('height')*1000,'easeInOutExpo');
});代码>
.main导航{
位置:固定;
排名:0;
左:0;
}
.主导航ul{
列表样式类型:无;
填充:0;
保证金:0;
字号:18px;
}
.主导航ul li{
填充:22px0;
光标:指针;
}
.主导航>ul{
填充:0 22px;
}
.主导航>ul>li>ul{
显示:无;
}
*,
*:之前,
*:之后{
框大小:边框框;
}
- 全球的
- 印刷术
- 颜色
- 图标
- 元素
- 正文
- 钮扣
- 列表
- 桌子
- 媒体
- 控制
- 下拉列表
- 警报
- 徽章
- 情态动词
- 布局
- 动态行
- 弯曲
- 组成部分
- 纸牌
- 横幅
- 项目编辑器
- 项目索引
- jQueryUI
- 登录
- 主要
- 详图(和详图视图)
- 深入调查
- 大菜单
- 航行
- 搜寻
- 厚物品
- 小部件
$(this).data('height')
似乎未定义,因此您似乎最终将NaN
作为第一个参数传递给slideToggle()
函数,我不确定修复方法是什么,但希望它能将您指向正确的方向,而不是基于高度,我建议根据ul
中有多少li
元素来计算(如果1000对您来说太慢,您可能需要修改乘数)
//获取每个列表的高度并将其保存在数据高度属性中
$('.main nav>ul>li>ul')。每个(函数(){
$(此).slideUp(0);
});
$('.main nav>ul>li')。单击(函数(){
//将元件的高度乘以所需的速度
$(this).children().slideToggle($(this).find(“li”).length*1000,“easeInOutExpo”);
});代码>
.main导航{
位置:固定;
排名:0;
左:0;
}
.主导航ul{
列表样式类型:无;
填充:0;
保证金:0;
字号:18px;
}
.主导航ul li{
填充:22px0;
光标:指针;
}
.主导航>ul{
填充:0 22px;
}
.主导航>ul>li>ul{
显示:无;
}
*,
*:之前,
*:之后{
框大小:边框框;
}
- 全球的
- 印刷术
- 颜色
- 图标
- 元素
- 正文
- 钮扣
- 列表
- 桌子
- 媒体
- 控制
- 下拉列表
- 警报
- 徽章
- 情态动词
- 布局
- 动态行
- 弯曲
- 组成部分
- 纸牌
- 横幅
- 项目编辑器
- 项目索引
- jQueryUI
- 登录
- 主要
- 详图(和详图视图)
- 深入调查
- 大菜单
- 航行
- 搜寻
- 厚物品
- 小部件
像这样的$(this.children().length*1000
而不是$(this.data('height')*1000
?这是个好主意,@imtheman!非常感谢@imtheman嗯,那是返回“1”。啊,是的,我没有意识到点击的是父li
。我已经添加了一个正确方法的答案(至少用这种方法)。