jQuery动画高度和溢出

Posted

技术标签:

【中文标题】jQuery动画高度和溢出【英文标题】:jQuery animate height and overflow 【发布时间】:2019-05-26 19:43:05 【问题描述】:

我正在使用 CSS 和 jQuery。我有一个切换类的 jQuery click 事件。当元素未切换时,高度为 0 并且溢出被隐藏,当我切换类时高度仍然为 0,但溢出是可见的。我的问题是如何制作动画?我正在寻找向下滑动溢出隐藏元素中的内容。

CSS

.section1, .section2, .section3, .section4, .section5, .section6, .section7 
     overflow: hidden;
     height: 0px;


.toggle 
     overflow: visible;

jQuery

   $('.architectural-films').bind('click', function(e)

       $(".section1").toggleClass("toggle").promise().done(function() 


           $(window).trigger('resize.px.parallax');

       );

       return false;
    );

更新

我尝试了以下方法:

.section1, .section2, .section3, .section4, .section5, .section6, .section7 
     overflow: hidden;
     transform: scaleY(0);
     transform-origin: top;
     transition: transform 0.15s ease-out;
     max-height: 0px;


.toggle 
     overflow: visible;
     transform: scaleY(1);
     transition: transform 0.15s ease-in;

问题是当移除切换类时,转换不会发生。

【问题讨论】:

【参考方案1】:

您可以使用max-height 属性,但您必须将其设置为某个固定值:

.section1, .section2, .section3, .section4, .section5, .section6, .section7 
     overflow: hidden;
     max-height: 0px;
     transition: max-height 0.15s ease-out;


.toggle 
     overflow: visible;
     max-height: 200px;

如果您想要自动高度,您可以使用transform 属性:

.section1, .section2, .section3, .section4, .section5, .section6, .section7 
     overflow: hidden;
     transform: scaleY(0);
     transform-origin: top;
     transition: transform 0.15s ease-out;


.toggle 
     overflow: visible;
     transform: scaleY(1);

【讨论】:

现在试试这个。 我更新了我的问题,效果很好,但在移除类切换时不会转换。 另外,当使用变换时,.section 中的内容在过渡时会被压扁。 我刚刚尝试了最大高度的想法,当删除切换类时,一切看起来都很奇怪。 new.sekanskin.com/what-we-do

以上是关于jQuery动画高度和溢出的主要内容,如果未能解决你的问题,请参考以下文章

带有溢出隐藏约束的 Jquery 在包装器内部进行动画处理

jQuery - 动画高度自动

jQuery:动画宽度/高度,但保持居中

Javascript/jQuery 动画到动态高度?

使用jQuery实现轻量级、跨浏览器和高度可定制的动画滚动

jQuery:如何在没有已知高度的情况下动画高度变化?