html+css+js实现Collapse 折叠面板

实现效果:

HTML部分

<div class="collapse">
    <ul>
      <li>
        <div class="header">
          <h4>一致性 Consistency</h4>
          <span class="iconfont icon-jiantou"></span>
        </div>
        <div class="footer">与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;<br>
          在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
      </li>
      <li>
        <div class="header">
          <h4>反馈 Feedback</h4>
          <span class="iconfont icon-jiantou "></span>
        </div>
        <div class="footer">控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;<br>
          页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
      </li>
      <li>
        <div class="header">
          <h4>效率 Efficiency</h4>
          <span class="iconfont icon-jiantou"></span>
        </div>
        <div class="footer">简化流程:设计简洁直观的操作流程;<br>
          清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;<br>
          帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
      </li>
      <li>
        <div class="header">
          <h4>可控 Controllability</h4>
          <span class="iconfont icon-jiantou"></span>
        </div>
        <div class="footer">用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;<br>
          结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
      </li>
    </ul>
  </div>

CSS部分

<style>
    *{
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    li{
      list-style: none;
    }
    .collapse{
      width: 900px;
      border: 1px solid rgb(235, 235, 235);
      margin: 50px auto;
      padding: 25px;
    }
    .collapse ul{
      border-top: 1px solid rgb(235, 235, 235);
    }
    .collapse ul li{
      border-bottom: 1px solid rgb(235, 235, 235);
    }
    .collapse ul .header{
      cursor: pointer;
      position: relative;
      /* background-color: pink; */
      height: 40px;
      line-height: 40px;
    }
    .collapse ul .header h4{
      font-size: 18px;
      font-weight: normal;
      color: rgb(62, 63, 65);
    }
    .collapse ul li span{
      position: absolute;
      right: 0;
      top: -1px;
      transition: 0.8s ease;
    }
    .collapse ul li span.active{
      transform: rotate(-90deg);
    }
    .collapse ul .footer{
      overflow: hidden;
      max-height: 0;
      transition: max-height 0.8s ease;
      color: rgb(62, 63, 65)
    }
    .collapse ul li .footer.active{
      max-height: 500px;
    }
  </style>

JS部分 

<script>
    const headers=document.querySelectorAll('.header')
    headers.forEach(function(item){
      item.addEventListener('click',function(){
        const icon=this.querySelector('.iconfont')
        const footer=this.nextElementSibling
        icon.classList.toggle('active');
        footer.classList.toggle('active');
      })
    })
</script>

a-collapse 折叠面板是一种常用的 UI 组件,用于在 Web 页面中显示可折叠内容。用户可以通过单击面板标题来展开或折叠内容,从而更好地组织和显示页面上的信息。 以下是 a-collapse 折叠面板的使用方法: 1.引入 a-collapse 组件:在 HTML 页面中引入 a-collapse 组件的 JavaScriptCSS 文件。 2.编写 HTML 代码:在页面中编写 HTML 代码,包括面板标题和内容。 3.添加 a-collapse 属性:将 `a-collapse` 属性添加到面板标题元素上,以指定该元素为折叠面板头部。 4.指定面板内容:将面板内容包含在 `a-collapse` 标签中,以指定该内容为折叠面板的内容。 5.设置默认状态:通过添加 `active` 属性来设置默认状态,如果 `active` 属性被设置为 true,则面板默认为展开状态;如果设置为 false,则面板默认为折叠状态。 6.添加事件监听器:可以通过添加事件监听器来监听面板状态的变化,例如在面板展开时执行一些操作。 以下是一个 a-collapse 折叠面板的示例代码: ```html <div a-collapse> <h3 a-collapse-header>面板标题</h3> <div a-collapse-body> 面板内容 </div> </div> ``` 在此示例中,`a-collapse` 属性指定该元素为折叠面板,`a-collapse-header` 属性指定面板标题,`a-collapse-body` 属性指定面板内容。可以通过设置 `active` 属性来指定面板的默认状态,例如: ```html <div a-collapse> <h3 a-collapse-header>面板标题</h3> <div a-collapse-body active> 面板内容 </div> </div> ``` 在此示例中,`active` 属性被设置为 true,因此该面板默认为展开状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值