我如何控制反向转换?
How can i control a transition in reverse?
当你点击按钮时,你会看到高度有 0.3 秒的延迟,但是当我们关闭 div 时,只有 transform:scale() 有效。
如何在关闭div时先进行高度转换?
过渡延迟无效。
Js
$(function() {
$("#button").click(function() {
$("#box").delay(300).queue(function() {
$(this).toggleClass("height");
$(this).dequeue();
});
$("#box").toggleClass("active");
});
});
转换为 300 毫秒,您的 JS 中的延迟也是如此。
这意味着在您单击按钮的那一刻,scale
的转换将立即开始,而 height
的转换将在 300 毫秒后开始。问题是,在 300 毫秒之后 - 比例已经为 0,因此您看不到第二次转换。
将延迟更改为小于 300 毫秒,您将在两次点击时看到过渡。
试试这个:
$(function() {
$("#button").click(function() {
var box = $('#box');
if(box.hasClass('active')){
box.removeClass("height");
box.delay(300).queue(function() {
$(this).removeClass("active");
$(this).dequeue();
});
} else {
box.delay(300).queue(function() {
$(this).addClass("height");
$(this).dequeue();
});
box.addClass("active");
}
});
});
当你点击按钮时,你会看到高度有 0.3 秒的延迟,但是当我们关闭 div 时,只有 transform:scale() 有效。
如何在关闭div时先进行高度转换?
过渡延迟无效。
Js
$(function() {
$("#button").click(function() {
$("#box").delay(300).queue(function() {
$(this).toggleClass("height");
$(this).dequeue();
});
$("#box").toggleClass("active");
});
});
转换为 300 毫秒,您的 JS 中的延迟也是如此。
这意味着在您单击按钮的那一刻,scale
的转换将立即开始,而 height
的转换将在 300 毫秒后开始。问题是,在 300 毫秒之后 - 比例已经为 0,因此您看不到第二次转换。
将延迟更改为小于 300 毫秒,您将在两次点击时看到过渡。
试试这个:
$(function() {
$("#button").click(function() {
var box = $('#box');
if(box.hasClass('active')){
box.removeClass("height");
box.delay(300).queue(function() {
$(this).removeClass("active");
$(this).dequeue();
});
} else {
box.delay(300).queue(function() {
$(this).addClass("height");
$(this).dequeue();
});
box.addClass("active");
}
});
});