CSS/Javascript动画高度为具有不同高度的项目展开和折叠
我正在尝试创建一个包含各种选项卡的菜单,这些选项卡可以单击以展开,然后再次单击以折叠 我已经成功地使用css动画/转换通过更改最大高度来实现这一点。然而,每个盒子将容纳不同数量的内容,从而导致不同的高度。这反过来又使它们以不同的速度进行动画制作 扩展箱子不是什么大问题,但当再次折叠箱子时,会非常明显,因为有些箱子在一段时间内似乎什么也不做,然后突然快速关闭,而另一些箱子则以平滑的运动关闭 CSS示例,以及一些用于添加和删除活动id的简单jQuery:CSS/Javascript动画高度为具有不同高度的项目展开和折叠,javascript,jquery,css,animation,css-animations,Javascript,Jquery,Css,Animation,Css Animations,我正在尝试创建一个包含各种选项卡的菜单,这些选项卡可以单击以展开,然后再次单击以折叠 我已经成功地使用css动画/转换通过更改最大高度来实现这一点。然而,每个盒子将容纳不同数量的内容,从而导致不同的高度。这反过来又使它们以不同的速度进行动画制作 扩展箱子不是什么大问题,但当再次折叠箱子时,会非常明显,因为有些箱子在一段时间内似乎什么也不做,然后突然快速关闭,而另一些箱子则以平滑的运动关闭 CSS示例,以及一些用于添加和删除活动id的简单jQuery: .options .optionTab &g
.options .optionTab > div {
max-height: 0;
overflow: hidden;
transition: max-height 2s ease;
}
.options .optionTab#active > div {
max-height: 1000px;
transition: max-height 2s ease;
}
$(".optionTab > h3").click(function() {
if($(this).closest(".optionTab").attr("id") == "active") {
$(this).closest(".optionTab").attr("id", "");
}
else {
$(this).closest(".optionTab").attr("id", "active");
}
});
有没有一种方法可以使用css或javascript动画在不同高度的项目中实现一致的动画速度?我注意到您正在使用css转换 试着把你的名字改成。可能更改高度会导致在相同的时间内完成动画的高度发生变化。也可以试试。手风琴 您可以使用
JqueryUI
并使用自定义css修改界面,使其看起来完全符合您的要求。这将为您节省时间,您可以在项目的其余部分进行投资
jQuery UI手风琴-折叠内容
$(函数(){
$(“手风琴”)。手风琴({
可折叠的:是的,
活动:错误
});
} );
第一节
莫里斯·莫里斯·安特、布兰迪·埃特、奥特莱斯a、苏西比特·埃特、夸姆。整数ut neque。胎膜早破,胎膜早破,妊娠期,调味品,无核细胞。南阿尼布。Donec suscipit Peros。南美。维韦拉·利奥·奥迪奥。马勒苏阿达库拉比图尔酒店。前庭是一个圆滑的节杖
第二节
塞德·努尔纳。别着急。叶舌。前庭位于阿梅特普鲁斯。亨德雷特万岁,阿利奎特·拉奥里特的多洛,毛里斯·图尔皮斯·波特提托·维利特,自由女神福西布斯。不夸姆万岁。在suscipit faucibus urna
第三节
Nam enim risus,molestie et,porta ac,aliquam ac,risus。奎斯克·洛博蒂斯。马萨的Phasellus Pellentsque purus。埃尼安在佩德。Phasellus ac libero ac tellus pellentesque semper。塞德·ac·费利斯。塞德·康莫多、马格纳·奎斯·拉西尼亚·奥纳雷、尼西广场、威尼斯人酒后驾车
- 第一项
- 清单项目二
- 清单项目三
第四节
粗俗的格言。佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。虎口浮雕和肘部浮雕同侧前庭;埃尼安·拉西尼亚·莫里斯·维勒东部 Suspendisse eu nisl。自由女神。整型贵宾会议。根据康努比亚·诺斯特拉(conubia nostra)和希梅纳奥斯(inceptos himenaeos)的规定,社会责任和责任等级为:
您可以试试这个
$(“.optionTab”)。每个(函数(){
var self=$(这是);
var slideHolder=self.find('>div');
风险值标题=自我发现(“h3”);
var initialHeight=slideHolder.outerHeight();
css('height',0);
标题.点击功能(e){
e、 preventDefault();//如果是锚定标记
slideHolderHeight=$(this.next().outerHeight();
var checkFlag=(slideHolderHeight>0)?true:false;
console.log(slideHolder);
幻灯片制作程序({
高度:检查标志?0:初始高度
},300)
});
});代码>
正文{
背景:#20262E;
填充:20px;
字体系列:Helvetica;
}
.选项{
背景:#fff;
}
.选项.选项选项卡h3{
背景:#f3;
填充:1em;
框大小:边框框;
保证金:0;
光标:指针;
}
.选项。选项选项卡h3:悬停{
背景:#ccc;
}
.options.optionTab>div{
溢出:隐藏;
过渡:最大高度2秒;
}
.options.optionTab>div>div{
填充:1em;
框大小:边框框;
}
除此之外,不要在运行时更改id
。改用class
属性。然后你的代码就变成了$(this)。toggleClass('active')
我认为这很好,heightStyle:“content”也是一个选项,因此它只能扩展到内容的高度。这似乎正是我需要的,谢谢。