首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >塌陷过渡

塌陷过渡
EN

Stack Overflow用户
提问于 2017-04-07 08:59:15
回答 7查看 2.6K关注 0票数 1

我正在做一个定制的折叠器,但是我不知道如何在隐藏的时候进行转换。

在网上搜索时,我发现了"display: none“,但它不支持转换。

我已经尝试过做高度:自动;然后是高度: 0px;但是它也不支持转换。

下面是代码:

HTML

代码语言:javascript
运行
复制
<a class="clp" href="#clp-1"><div>Button</div></a>
<div class="clp-body clp-show" id="clp-1">Lorem ipsum</div>

CSS

代码语言:javascript
运行
复制
 .clp > div {
  border: 1px solid black;
  border-radius: 3px;
  width: 150px;
  padding: 5px;
}

.clp {
  text-decoration: none;
  font-family: Verdana;
  color: black;
}

.clp-body {
  border: 1px solid black;
  border-radius: 3px;
  width: 150px;
  padding: 5px;
  margin-top: 5px;
  transition: all 0.5s ease;
}

.clp-show {
  opacity: 1;
}

.clp-show {
  opacity: 0;
  display: none; /* Only for the example */
}

JS (jQuery)

代码语言:javascript
运行
复制
 $('a.clp').click(function(){
  var value = $(this).attr("href");
  if ($('div'+(value)).hasClass('clp-show')) {
    $('div'+(value)).addClass('clp-hide');
    $('div'+(value)).removeClass('clp-show');
  }
  else {
    $('div'+(value)).removeClass('clp-hide');
    $('div'+(value)).addClass('clp-show');
  };
});

这里有一个链接:https://codepen.io/Keyon/pen/937706ce73bc3f68cbeff6dd6faf6c87

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-04-07 09:58:01

您可以使用jQuery的slideDown()slideUp()来展开和折叠您的div,如下所示:

代码语言:javascript
运行
复制
$('#clp-1').slideDown(); // expand
$('#clp-1').slideUp(); // collapse

您还需要删除CSS行transition: all 0.5s ease;,以便jQuery滑动才能正常工作。

票数 2
EN

Stack Overflow用户

发布于 2017-04-07 09:07:55

为什么不使用Jquery的淡出动画或幻灯片动画,您可以使用动画函数制作自己的动画。

褪色:

代码语言:javascript
运行
复制
 $('div'+(value)).fadeIn();
 $('div'+(value)).fadeOut();

幻灯片:

代码语言:javascript
运行
复制
 $('div'+(value)).slideUp();
 $('div'+(value)).slideDown();

要创建自己的动画:

代码语言:javascript
运行
复制
  $('div' + (value)).animate({
      //some css propeties example:
      margin-right: 500px
  }, 5000, function() {
    // Animation complete.
  });
票数 4
EN

Stack Overflow用户

发布于 2017-04-07 09:57:33

转换不能在高度上工作,您需要使用最大高度。使用下面的CSS。

代码语言:javascript
运行
复制
.clp-body {
    max-height: 0; /* set the initial height to 0 */
    transition: max-height .5s ease-in; /* define the transition */
}
.clp-show {
    max-height: 1000px; /* set it to some high value but it will not expand more than the content height */
}

单击clp-show类时切换.clp

代码语言:javascript
运行
复制
$(".clp").on("click", function () {
    $(".clp-body").toggleClass("clp-show");
});

编辑:您不需要display:none,因为我们最初是在设置max-height: 0

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43273932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档