Jquery 附加后删除类
我试图在附加到DOM时滑入元素。像这样:Jquery 附加后删除类,jquery,css,transition,show-hide,Jquery,Css,Transition,Show Hide,我试图在附加到DOM时滑入元素。像这样: $("<div class='column column-hiding'>Content</div>") .appendTo(container) .removeClass("column-hiding"); 或 这样,它会立即显示列。此方法在使用setTimeoutdelay进行延迟后工作,但是否有其他选项可用于确定应添加/删除类的时间?我还尝试在样式中添加了一个转换延迟,但它仍然会立即显示出来 提前谢谢你的回
$("<div class='column column-hiding'>Content</div>")
.appendTo(container)
.removeClass("column-hiding");
或
这样,它会立即显示列。此方法在使用setTimeout
delay进行延迟后工作,但是否有其他选项可用于确定应添加/删除类的时间?我还尝试在样式中添加了一个转换延迟
,但它仍然会立即显示出来
提前谢谢你的回答
注意:我使用的是jQuery3
**编辑**
以下是一个片段:
//这会立即产生动画效果
$(“内容”)
.appendTo($(“#容器”))
.removeClass(“列隐藏”);
//这是有效的
变量列=$(“内容”)
.附($(“#容器”);
setTimeout(函数(){
column.removeClass(“列隐藏”);
}, 500);代码>
#容器{
宽度:100px;
高度:300px;
背景:银;
溢出:隐藏;
}
.栏目{
转化:translateX(0%);
过渡:所有0.3秒放松;
背景:蓝色;
宽度:100px;
高度:100px;
}
.列隐藏{
转化:translateX(-100%);
过渡:所有0.3秒放松;
}
.col2{
背景:红色
}
您可以使用'callback'函数来实现这一点,但不能在'appendTo'
方法中使用callback。。。有一个名为$的jquery方法。。。并在此处找到代码的工作示例
您可以使用“callback”函数来实现这一点,但不能在'appendTo'
方法中使用callback。。。有一个名为$的jquery方法。。。并在此处找到代码的工作示例
你能在问题中创建一个代码段来更好地理解你的代码是如何工作的吗?好的,我会创建一个。@MaratBadykov添加了一个。嗨,你可以在附加元素后尝试使用mutationObserver作为回调函数。。。看到这个了吗?是的,这是一个答案,但它会导致任何性能问题吗?我也在读这个答案。你能在你的问题中创建一个片段来更好地理解你的代码是如何工作的吗?好的,我会创建一个。@MaratBadykov添加了一个。嗨,你可以在附加元素后尝试使用mutationObserver作为回调函数。。。看到这个了吗?是的,这是一个答案,但它会导致任何性能问题吗?我也在读这个答案。是的,$。当我在搜索的时候!谢谢。是的,$。我什么时候搜索的!谢谢
$("<div class='column'>Content</div>")
.appendTo(container)
.addClass("column-showing");
.column {
transform: translateX(0%);
transition: all 0.3s ease-out;
}
.column-hiding {
transform: translateX(-100%);
transition: all 0.3s ease-out;
}
.column {
transform: translateX(-100%);
transition: all 0.3s ease-out;
}
.column-showing {
transform: translateX(0%);
transition: all 0.3s ease-out;
}
var column = $("<div class='column col2 column-hiding'>Content</div>");
$.when(column.appendTo($("#container"))).then(function(){
column.removeClass("column-hiding");
});
$("<div class='column column-hiding'>Content</div>")
.appendTo($("#container"))
.delay(1000)
.queue(function(){
$(this).removeClass("column-hiding").dequeue();
});