Javascript 使用过渡添加子级时div的平滑增长
尽管使用了Javascript 使用过渡添加子级时div的平滑增长,javascript,jquery,html,css,css-transitions,Javascript,Jquery,Html,Css,Css Transitions,尽管使用了transition,但以下代码的行为并不像我预期的那样,因此我可能不了解它们 理想情况下,单击该按钮将向id2div追加一个子项,并使id1div相应地平滑地增长 $(函数(){ $(“#id1按钮”)。单击(()=>{ $(“#id2”)。附加(“呵呵”) }); }); #id1{ 宽度:100%; 过渡期:全部2个月; } .孩子{ 背景色:柠檬色; 最小高度:50px; 边框:1件纯色丽贝卡紫色; 利润率:10px 0px; } #id2{ 填充:20px; 边框:2件纯蓝
transition
,但以下代码的行为并不像我预期的那样,因此我可能不了解它们
理想情况下,单击该按钮将向id2
div追加一个子项,并使id1
div相应地平滑地增长
$(函数(){
$(“#id1按钮”)。单击(()=>{
$(“#id2”)。附加(“呵呵”)
});
});代码>
#id1{
宽度:100%;
过渡期:全部2个月;
}
.孩子{
背景色:柠檬色;
最小高度:50px;
边框:1件纯色丽贝卡紫色;
利润率:10px 0px;
}
#id2{
填充:20px;
边框:2件纯蓝;
过渡:均为0.5缓;
}
点击
按下按钮时CSS属性不会更改,因此不触发任何CSS转换是正确的行为
要使#id2
在添加新的子项时平稳增长,必须使用其他一些机制。按下按钮时CSS属性不会更改,因此不触发任何CSS转换是正确的行为
要使#id2
随着新孩子的加入而顺利成长,必须使用其他一些机制。。我将动画更改为要附加的元素#id2至儿童
使用用于类上的多个案例的样式,以及不用于ID上的样式,因为它们应该是唯一的
<div id='id1'>
<button>click</button>
<div id="id2"></div>
</div>
#id1 {
width: 100%;
transition: all 2 ease;
}
.child {
background-color: lemonchiffon;
min-height: 50px;
border: 1px solid rebeccapurple;
margin: 10px 0px;
animation: animateElement linear .3s;
animation-iteration-count: 1;
}
#id2 {
padding: 20px;
border: 2px solid blue;
}
@keyframes animateElement{
0% {
opacity:0;
transform: scaleY(0) translateY(-100%);
}
100% {
opacity:1;
transform: scaleY(1) translateY(0%);
}
}
$(function() {
$("#id1 button").click(() => {
$("#id2").append("<div class='child'>hehe</div>")
});
});
点击
#id1{
宽度:100%;
过渡期:全部2个月;
}
.孩子{
背景色:柠檬色;
最小高度:50px;
边框:1件纯色丽贝卡紫色;
利润率:10px 0px;
动画:animateElement linear.3s;
动画迭代次数:1;
}
#id2{
填充:20px;
边框:2件纯蓝;
}
@关键帧动画元素{
0% {
不透明度:0;
变换:scaleY(0)translateY(-100%);
}
100% {
不透明度:1;
变换:scaleY(1)translateY(0%);
}
}
$(函数(){
$(“#id1按钮”)。单击(()=>{
$(“#id2”)。附加(“呵呵”)
});
});
。我将动画更改为要附加的元素#id2至儿童
使用用于类上的多个案例的样式,以及不用于ID上的样式,因为它们应该是唯一的
<div id='id1'>
<button>click</button>
<div id="id2"></div>
</div>
#id1 {
width: 100%;
transition: all 2 ease;
}
.child {
background-color: lemonchiffon;
min-height: 50px;
border: 1px solid rebeccapurple;
margin: 10px 0px;
animation: animateElement linear .3s;
animation-iteration-count: 1;
}
#id2 {
padding: 20px;
border: 2px solid blue;
}
@keyframes animateElement{
0% {
opacity:0;
transform: scaleY(0) translateY(-100%);
}
100% {
opacity:1;
transform: scaleY(1) translateY(0%);
}
}
$(function() {
$("#id1 button").click(() => {
$("#id2").append("<div class='child'>hehe</div>")
});
});
点击
#id1{
宽度:100%;
过渡期:全部2个月;
}
.孩子{
背景色:柠檬色;
最小高度:50px;
边框:1件纯色丽贝卡紫色;
利润率:10px 0px;
动画:animateElement linear.3s;
动画迭代次数:1;
}
#id2{
填充:20px;
边框:2件纯蓝;
}
@关键帧动画元素{
0% {
不透明度:0;
变换:scaleY(0)translateY(-100%);
}
100% {
不透明度:1;
变换:scaleY(1)translateY(0%);
}
}
$(函数(){
$(“#id1按钮”)。单击(()=>{
$(“#id2”)。附加(“呵呵”)
});
});
我不知道怎么可能重复,你能详细说明一下吗?不要在height
属性上应用transition,而是应用max height
属性。使用Jquery根据孩子的数量计算max height
。但是我没有也不想要一个max height,随着孩子的增加,身高会发生变化,而不是像我在这个问题中悬停时那样。你不能在height
上应用css转换。您必须使用jquery的动画
。检查:我不知道如何可能重复,您可以详细说明吗?您可以应用max height
属性,而不是在height
属性上应用转换。使用Jquery根据孩子的数量计算max height
。但是我没有也不想要一个max height,随着孩子的增加,身高会发生变化,而不是像我在这个问题中悬停时那样。你不能在height
上应用css转换。您必须使用jquery的动画
。检查: