accordion-折叠面板

从今天开始学习jquery的easyui插件。在学习easyui之前,需要从jquery官网上下载easyui插件,里面有详细的demo实例。

首先介绍一下easyui中的第一个demo实例accordion(折叠面板)的使用:

<div id="aa" class=“easyui-accordion" >

  <div title="About" data-options="iconCls:'icon-ok'" >

    填写内容........................

  </div>

  <div title="Help" data-option="iconCls:'icon-help'">

    填写内容...............................

  </div>

  <div title="Ajax" data-options="href:'_content.html'"></div>

</div>

其中,第一个div的class="easyui-accordion"指明了这个div是一个折叠面板,中间三个div是这个折叠板中的板块,可以通过点击标题来实现折叠和收起的效果。data-option="iconCls:'icon-ok"用来指定标题中的图标样式。data-options="href:'_content.html'"指定板块中文本内容所在页面地址。

接下来介绍accordion中函数的使用:

页面中html和js代码如下:

<div>
  <a href="javascript:void(0)" class="easyui-linkbutton" οnclick="selectPanel()">Select</a>
  <a href="javascript:void(0)" class="easyui-linkbutton" οnclick="addPanel()">Add</a>
  <a href="javascript:void(0)" class="easyui-linkbutton" οnclick="removePanel()">Remove</a>
 </div>
 <div id="aa" class="easyui-accordion" >
    <div title="About" data-options="iconCls:'icon-ok'" >
       <h3 style="color:#0099FF;">Accordion for jQuery</h3>
       <p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
    </div>
 </div>

<script type="text/javascript">
  function selectPanel(){
     $.messager.prompt('Prompt','Please enter the panel title:',function(s){
      if (s){
         $('#aa').accordion('select',s);
      }
    });
  }
    var idx = 1;
  function addPanel(){
     $('#aa').accordion('add',{
      title:'Title'+idx,
      content:'<div style="padding:10px">Content'+idx+'</div>'
   });
     idx++;
  }
  function removePanel(){
     var pp = $('#aa').accordion('getSelected');
     if (pp){
        var index = $('#aa').accordion('getPanelIndex',pp);
        $('#aa').accordion('remove',index);
       }
    }
 </script>

第一个div中包括三个超链接,class="easyui-linkbutton"指定这个超链接的样式为linkbutton,οnclick=”selectPanel()“点击事件触发执行selectPanel函数。

1.selectPanel()函数中$('#aa'),获取id为aa的Dom元素,.accordion(‘select’,s)为该元素执行accordion中的select函数,并传递参数s。

2.addPanel()函数中$('#aa').accordion('add',{}),使用add方法添加一个新的<div></div>板块.

3.removePanel()函数中$('#aa').accordion('getSelected')获取选中的元素,默认为第一个元素;$('#aa').accordion('getPanelIndex',pp)使用getPanelIndex方法获取元素pp的索引值,$('#aa').accordion('remove',index)函数使用remove方法,删除索引值=index的元素。

多重板块:

<div class="easyui-accordion" data-options="multiple:true" style="width:500px;height1:300px;"></div>

multiple:true表示该accordion为多重板块,板块可以向下延伸,而不必关闭未选中的板块。

树形结构:只需要定义class="easyui-tree"

<div title="TreeMenu" data-options="iconCls:'icon-search'" >
   <ul class="easyui-tree">
    <li>
     <span>Foods</span>
     <ul>
      <li>
       <span>Fruits</span>
       <ul>
        <li>apple</li>
        <li>orange</li>
       </ul>
      </li>
      <li>
       <span>Vegetables</span>
       <ul>
        <li>tomato</li>
        <li>carrot</li>
        <li>cabbage</li>
        <li>potato</li>
        <li>lettuce</li>
       </ul>
      </li>
     </ul>
    </li>
   </ul>
  </div>

由于是刚开始学easyui,做笔记的同时也希望和广大网友分享讨论,还有很多东西不懂,如果说错了或者说的不详细,还望指教。

把先进的技术挂在嘴边,不如把过时的技术放在心里。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Vue3实现折叠面板动画的示例代码: ```html <template> <div class="accordion"> <div class="accordion-item" v-for="(item, index) in items" :key="index"> <div class="accordion-header" @click="toggle(index)"> {{ item.title }} <span class="icon" :class="{ 'is-active': item.open }"></span> </div> <div class="accordion-content" :style="{ height: item.open ? item.height + 'px' : 0 }" @transitionend="transitionEnd(index)"> <div class="inner"> {{ item.content }} </div> </div> </div> </div> </template> <script> import { ref } from 'vue'; export default { setup() { const items = ref([ { title: '折叠面板1', content: '这是折叠面板1的内容', open: false, height: 0, }, { title: '折叠面板2', content: '这是折叠面板2的内容', open: false, height: 0, }, { title: '折叠面板3', content: '这是折叠面板3的内容', open: false, height: 0, }, ]); const toggle = (index) => { items.value[index].open = !items.value[index].open; if (items.value[index].open) { items.value[index].height = document.querySelector(`.accordion-item:nth-child(${index + 1}) .accordion-content .inner`).offsetHeight; } else { items.value[index].height = 0; } }; const transitionEnd = (index) => { if (!items.value[index].open) { items.value[index].height = 0; } }; return { items, toggle, transitionEnd, }; }, }; </script> <style> .accordion { .accordion-item { .accordion-header { cursor: pointer; .icon { display: inline-block; width: 10px; height: 10px; margin-left: 10px; border-top: 2px solid #333; border-right: 2px solid #333; transform: rotate(45deg); transition: transform 0.3s ease; &.is-active { transform: rotate(-135deg); } } } .accordion-content { overflow: hidden; transition: height 0.3s ease; .inner { padding: 10px; } } } } </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值