jQuery slideToggle 在下拉动画结束时跳转
jQuery slideToggle jumps at end of dropdown animation
我正在尝试创建一个带有下拉菜单的边栏。我正在为下拉动画使用 Jquery 的 slideToggle()
函数。我的问题是,当下拉菜单上下动画隐藏其他下拉菜单时,动画显得断断续续。我在这里阅读了一些选项,但似乎找不到适合我的解决方案。
我设法在此处使用 JSFiddle 重新创建了侧边栏:
https://jsfiddle.net/jckly/54m54jq3/
感谢您的帮助。
这是由于您正在制作动画的项目上的填充。基本上,jQuery 必须对高度和填充进行动画处理,这使得它不是很平滑。查看这个没有填充的版本:
https://jsfiddle.net/54m54jq3/1/
我建议在每个菜单项中添加另一个 div,并对其应用填充。
编辑:尝试在您的 JS 中使用回调,这样您就不会打开菜单,直到其他菜单完成隐藏:
https://jsfiddle.net/54m54jq3/2/
$('.dropdown').on('click', function () {
var continent;
$('.dropdown').not(this).slideToggle(300, function () {
continent = $(this).clone().children().remove().end().text().toLowerCase().trim();
continent = '.' + continent;
console.log(continent);
$(continent).slideToggle(300);
});
});
我正在尝试创建一个带有下拉菜单的边栏。我正在为下拉动画使用 Jquery 的 slideToggle()
函数。我的问题是,当下拉菜单上下动画隐藏其他下拉菜单时,动画显得断断续续。我在这里阅读了一些选项,但似乎找不到适合我的解决方案。
我设法在此处使用 JSFiddle 重新创建了侧边栏: https://jsfiddle.net/jckly/54m54jq3/
感谢您的帮助。
这是由于您正在制作动画的项目上的填充。基本上,jQuery 必须对高度和填充进行动画处理,这使得它不是很平滑。查看这个没有填充的版本:
https://jsfiddle.net/54m54jq3/1/
我建议在每个菜单项中添加另一个 div,并对其应用填充。
编辑:尝试在您的 JS 中使用回调,这样您就不会打开菜单,直到其他菜单完成隐藏: https://jsfiddle.net/54m54jq3/2/
$('.dropdown').on('click', function () {
var continent;
$('.dropdown').not(this).slideToggle(300, function () {
continent = $(this).clone().children().remove().end().text().toLowerCase().trim();
continent = '.' + continent;
console.log(continent);
$(continent).slideToggle(300);
});
});