【问题标题】:Run function only when the div height is 0 (animated), not before [duplicate]仅当 div 高度为 0(动画)时才运行函数,而不是在 [重复] 之前
【发布时间】:2018-01-26 03:15:11
【问题描述】:

例如,我只有一个像这样的简单 html:

<div class="visible_div">My Div</div>
<div class="invisible_div">Now you can see me!</div>
<div class="button">My Button</div>

我使用以下代码仅通过 addClass 将 div“visible_div”从“500px”(只是一个示例值)隐藏到“0px”(我想使用 css 方式)。通过 CSS 转换,这可能需要 0.3 秒。

JS:

$(".button").click(function(){   
    $(".visible_div").addClass("hide");
});

CSS:

.visible_div {
  height: 500px
  transition: height 0.3s;}

.visible_div.hide {
  height: 0px}

所以,如果 div "visible_div" 的高度为 "0",我将运行以下脚本,但不是在此之前!

$(".invisible_div").addClass("show");

我的问题:如何检查 div "visible_div" 是否不再可见,在 js 脚本内没有延迟,等待 css 动画?

【问题讨论】:

  • 哦,抱歉重复了 - 我不知道,有一个简单的 js 命令可以解决这个问题 ;(.

标签: javascript jquery


【解决方案1】:

订阅transitionend活动:

$(".button").click(function() {   
    $(".visible_div").addClass("hide");
});

$(".visible_div").on('transitionend', function() {
    $(".invisible_div").addClass("show");
});

【讨论】:

  • 是的,这很有魅力,谢谢!
猜你喜欢
  • 2013-06-12
  • 2019-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2015-05-13
相关资源
最近更新 更多