javascript - 在 div 单击时切换动态(或 'auto')高度

标签 javascript jquery html css jquery-animate

我试图让我的 FAQ 容器动态/响应,但在让它正常工作时遇到了一些问题。

目前,我可以打开容器,但如果再次单击它不会缩回(或关闭)。这是我所拥有的:

JS:

$('.faq_container').on('click', function() {
  $(this).find('.faq_up-arrow, .faq_down-arrow').toggle();
  $(this).animate({
    height: $('.faq_container').get(0).scrollHeight
  }, 250, function() {
    $(this).height('auto');
  });
});

这是一个FULL DEMO以上片段...

我尝试过的另一种方法是:

$('.faq_container').on('click', function () {
    $(this).find('.faq_up-arrow, .faq_down-arrow').toggle();
    if ( $(this).height() != 40) {
        $(this).animate( { height : 40 }, 250);
    } else {
        $(this).animate( { height : 400 }, 250);
    }
});

但是,正如您在此处所见,这是基于“固定”高度,而不是将其设置为更具动态/响应性的方式...

这是一个DEMO对于这个其他选择

如果可能的话,我想使用第一种方法,但似乎无法让 div 重新关闭...

如有任何帮助,我们将不胜感激!

最佳答案

首先,尝试使用 .slideToggle() .

然后包装你的 answer容器 <div class="answer"> . 剩下的,看我的 fiddle here .

关于javascript - 在 div 单击时切换动态(或 'auto')高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546973/

相关文章:

javascript - 在 jsf 中使用 d3 图表有技巧吗?

javascript - 如何将 JSON 数据从 Express 传递到 pug 中的 javascript/jQuery 脚本?

javascript - 如何使用 Wikipedia 的 API 使用 JS 和/或 jQuery 搜索多篇文章

javascript - IOS 上的 HTML5 音频 : how can currentTime be less than initial value?

javascript - 在 Javascript 中使用 RegExp 查找文件序列

javascript - 使用 jquery 获取排序后的第一个子 <div> 类名

javascript - 如何获取xml所有子节点值?

javascript - Jquery 滑动选项卡-如何禁用顶部菜单?

javascript - 使用 JavaScript 提示获取输入并将其传递

Javascript encodeURIComponent() 不编码空格