jquery动态展示多层数据,完成手风琴样式

在这里插入图片描述

<div class="ct">
  <div class="jeshi_tree">
    <div id="el_tree_1000000" class="v sidebar">
      <div class="cls"></div>
    </div>
  </div>
</div>
<script>
  var skillData = []
  var skillData = new Array();
  var categoryData = []
  var categoryData = new Array();
/* 获取军工、人工智能、医疗部分数据 */
  function skillRender() {
    var url = `/api/v1/skillCategory?q=list`
      $.ajax({
        type: 'Get',
        url:url ,
        // data: pageParam,
        dataType: "json",
        success: function (response) {
          // 将数据渲染到页面
          // Dom.html('');
          skillData = response.result.data;
          drawingRender()
        }
      })
  }
  skillRender()
	
	//获取军工行业1 、军工行业2 部分全部数据
  function categoryRender() {
    var url = `/api/v1/projectCategory?q=list`
      $.ajax({
        type: 'Get',
        url:url ,
        // data: pageParam,
        dataType: "json",
        success: function (response) {
          // 将数据渲染到页面
          // Dom.html('');
          categoryData = response.result.data;
          drawingRender()
        }
      })
  }
  categoryRender()

  /* 遍历展示类别 外层军工、人工智能、医疗部分数据展示 */
  function drawingRender() {
    var Dom = $('.sidebar')
    Dom.empty()
    $.each(systemParameterData, function(parameterIndex, parameterValue) {
    	//第一个默认展开
      if (parameterIndex === 0) {
        var TitleHtml = `
        <div>
          <div class="kstl" οnclick="clickNav(this)" id=${parameterValue.record_id}>
            <a >${parameterValue.chn_name}</a>
          </div>
          <div class="ksbd cur" id=${parameterValue.record_id}>
            <ul class="parameter${parameterValue.record_id}">
            </ul>
          </div>
        </div>
        `
      } else {
        var TitleHtml = `
        <div>
          <div class="kstl" οnclick="clickNav(this)" id=${parameterValue.record_id}>
            <a >${parameterValue.chn_name}</a>
          </div>
          <div class="ksbd navItem" id=${parameterValue.record_id}>
            <ul class="parameter${parameterValue.record_id}">
            </ul>
          </div>
        </div>
        `
      }
      
        Dom.append(TitleHtml);
        drawingCategoryRender(parameterIndex,parameterValue.record_id)
     })
    
  }
  /* 大类别下的类别分类 军工行业1、军工行业2数据展示 */
  function drawingCategoryRender (parameterIndex,categoryId) {
    $.each(categoryData, function(categoryIndex, categoryValue) {
    	//将军工技能1、军工技能2展示到军工分类下
      if (categoryValue.category_id ===  categoryId) {
        var categoryHtml = `
        <li><a class="categoryLink" οnclick="clickCategory('${categoryValue.record_id}','category')">${categoryValue.chn_name}</a></li>
        `
      }
        $( `.parameter${categoryId}`).append(categoryHtml);
    })
  }
	//点击展开
  function clickNav(obj){
    $(".ksbd").addClass('navItem')
    var showEle = $(obj).next()
    showEle.removeClass('navItem')
    showEle.addClass('cur')
  }
</script>
<style>
  .cur{
    display: block;
  }
  .navItem {
    display: none;
  }
  .categoryLink{
    cursor: pointer;
  }
</style>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好,以下是一个简单的jQuery横向手风琴图片展示插件的示例代码: HTML代码: ``` <div class="accordion"> <div class="accordion-item"> <img src="image1.jpg"> <div class="accordion-item-title">Image 1</div> </div> <div class="accordion-item"> <img src="image2.jpg"> <div class="accordion-item-title">Image 2</div> </div> <div class="accordion-item"> <img src="image3.jpg"> <div class="accordion-item-title">Image 3</div> </div> </div> ``` CSS代码: ``` .accordion { display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; } .accordion-item { width: 100vw; min-width: 300px; height: 100%; scroll-snap-align: start; position: relative; } .accordion-item img { width: 100%; height: 100%; object-fit: cover; } .accordion-item-title { position: absolute; bottom: 0; left: 0; width: 100%; background-color: rgba(0, 0, 0, 0.5); color: #fff; font-size: 1.5rem; padding: 0.5rem; } ``` jQuery代码: ``` $(document).ready(function() { $('.accordion').on('scroll', function() { // 当前选中的手风琴项 var $activeItem = null; // 手风琴项的宽度 var itemWidth = $('.accordion-item').outerWidth(); // 计算当前选中的手风琴项 $('.accordion-item').each(function() { var itemLeft = $(this).offset().left - $('.accordion').offset().left; if (itemLeft <= $(window).width() / 2 && itemLeft + itemWidth > $(window).width() / 2) { $activeItem = $(this); return false; } }); // 更新手风琴项的样式 $('.accordion-item').removeClass('active'); $activeItem.addClass('active'); }); }); ``` 这个插件使用CSS的scroll-snap-type和scroll-snap-align属性来实现手风琴效果,使用jQuery监听滚动事件并计算当前选中的手风琴项,最后更新手风琴项的样式来实现手风琴效果。你可以根据具体需求对CSS和jQuery代码进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值