77777778888888 2023-04-06 11:04 采纳率: 45.5%
浏览 12

我想在点击折叠面板的时候,然后设置这个折叠面板的展开高度

我想在点击折叠面板的时候,先拿到这是第几个面板,然后设置这个折叠面板的展开高度,该怎么实现。
图二

img


图三

img

  • 写回答

2条回答 默认 最新

  • wusp1994 2023-04-06 14:33
    关注

    您可以将折叠面板的点击事件绑定到一个函数上,在函数中进行高度的设置。具体步骤如下:

    1. 给每个折叠面板添加一个点击事件监听器。

      <div class="panel" onclick="togglePanel(this)">
        <!-- 折叠面板内容 -->
      </div>
      
    2. 在点击事件处理函数中获取当前点击的折叠面板所在的位置。

      function togglePanel(panel) {
        // 获取当前点击的折叠面板在所有折叠面板中的位置
        const index = Array.from(document.querySelectorAll('.panel')).indexOf(panel);
        // ...
      }
      
    3. 根据当前折叠面板的状态设置展开高度。

      function togglePanel(panel) {
        // 获取当前点击的折叠面板在所有折叠面板中的位置
        const index = Array.from(document.querySelectorAll('.panel')).indexOf(panel);
        // 获取当前折叠面板的展开状态
        const isExpanded = panel.classList.contains('expanded');
        // 计算折叠面板展开的高度
        const contentHeight = isExpanded ? 0 : panel.scrollHeight;
        // 设置折叠面板的展开高度
        panel.style.height = `${contentHeight}px`;
        // 切换折叠面板的展开状态
        panel.classList.toggle('expanded');
      }
      

    在上面的处理函数中,我们使用了classList属性来切换折叠面板的展开状态,使用scrollHeight属性来获取折叠面板内容的实际高度。

    当然,以上代码只是简单的示例代码,实际开发中还需要按照具体需求进行相应的调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月6日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号