使用javascript 点击tab栏切换事件代码记录

如下图实现以下两点功能:

这里做代码记录

1. javascript 点击tab栏动态切换内容,并添加active

2. javascript 点击左右图标可以向左或者向右移动元素

第1点功能:

// tab栏
<div class="left">
              <span class="tab active" onclick="changeTab('personCon',event)"
                >个人业务</span
              ><span class="tab" onclick="changeTab('publicCon',event)"
                >对公业务</span
              ><span class="tab" onclick="changeTab('licenseCon',event)"
                >证照办理</span
              >
            </div>

// tab栏对应的内容
<div class="tabItem none" id="personCon">
    <div class="business-list">这里是个人业务</div>
</div>
<div class="tabItem none" id="publicCon">
    <div class="business-list">这里是对公业务</div>
</div>
<div class="tabItem none" id="licenseCon">
    <div class="business-list">这里是证照办理</div>
</div>
// js执行事件
function changeTab(tabId, e) {
      let tabItems = document.querySelectorAll('.tabItem');
      tabItems.forEach(function (item) {
        item.classList.remove('show');
        item.classList.add('none');
      });

      let tabs = document.querySelectorAll('.tab');
      tabs.forEach(function (item) {
        item.classList.remove('active');
      });

      // 显示选中当前的tab
      e.target.classList.add('active');

      // 显示当前选中的 tabItem
      let activeTab = document.getElementById(tabId);
      activeTab.classList.add('show');
    }

第2点功能,改变ul的style,tanlateX 移动

<div class="business-list">
              <div class="list-left" onclick="moveEvent('listLeft',event)">
                <img src="./assets/zj.png" />
              </div>
              <div class="list-box">
                <ul class="list">
                  <li>
                    <img src="./assets/jsld.png" />
                    <span>家属来队</span>
                  </li>
                  <li>
                    <img src="./assets/xjsq.png" />
                    <span>休假申请</span>
                  </li>
                  <li>
                    <img src="./assets/xxwh.png" />
                    <span>信息维护</span>
                  </li>  
              </div>

              <div class="list-right" onclick="moveEvent('listRight',event)">
                <img src="./assets/yj.png" />
              </div>
            </div>
let currentIndex = 0;
    let listWidth = 150; // li 元素的宽度

    function moveEvent(direction, event) {
      event.stopPropagation();
      if (direction === 'listLeft') {
        currentIndex--;
      } else if (direction === 'listRight') {
        currentIndex++;
      }

      updateListPosition();
    }

    function updateListPosition() {
      let ul = document.querySelector('.list');
      let newPosition = currentIndex * listWidth;
      ul.style.transform = 'translateX(' + newPosition + 'px)';
    }

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值