在不使用JQuery情况下,如何通过ES6只使用原生js去实现选项卡特效?

4 篇文章 0 订阅

前言

在一些特殊的项目当中,有时候可能无法使用JQuery,那么我们在不使用JQuery的情况下如何使用原生js去实现一个选项卡特效插件?

部分HTML代码

<div class="hu_party_title">
   <div class="tab_title tab_active1">党群工作</div>
   <div class="tab_title">党建工作</div>
   <div class="tab_title">团青工作</div>
   <div class="tab_title">团会工作</div>
 </div>
 <div class="hu_party_content">
   <div class="hu_party_tab_content tab_active2">党群工作</div>
   <div class="hu_party_tab_content">党建工作</div>
   <div class="hu_party_tab_content">团青工作</div>
   <div class="hu_party_tab_content">团会工作</div>
 </div>

部分CSS代码

.hu_party_title{
  width: 100%;
  height: 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.hu_party_title div{
  padding: 5px 30px;
  font-size: 20px;
  cursor: pointer;
}
.tab_title{
  color: #2F4A7E;
  border: 1px solid #2F4A7E;
}
.hu_party_tab_content{
  width: 100%;
  height: auto;
  min-height: 460px;
  display: none;
}
.tab_active1{
  background: #2F4A7E !important;
  color: white !important;
}
.tab_active2{
  display: block;
}

js部分代码(ES6)

//选项卡头部获取
const tab = document.getElementsByClassName('tab_title');
//选项卡内容获取
const tab_content = document.getElementsByClassName('hu_party_tab_content');
for (let i = 0; i < tab.length; i++) {
//监听选项卡头部点击事件
  tab[i].addEventListener('click',function () {
  	//判断除点击之外的同层级其他所有元素,移除点击添加的class效果
    for (let j = 0; j < tab.length; j++) {
      if( j !== i ){
        tab[j].classList.remove('tab_active1'); 
      }  
    };
    //点击选项卡头部选中样式添加
    tab[i].classList.add('tab_active1')
    for (let s = 0; s < tab_content.length; s++) {
    //选中对应的内容显示,不选中的内容消失
      if (i==s) {
        tab_content[s].classList.add('tab_active2');
      } else {
        tab_content[s].classList.remove('tab_active2');
      }
    }
  })
}

最终效果

在这里插入图片描述

通过以上三步,我们就简单完成了一个依据ES6标准纯原生js实现的一个选项卡特效插件Demo,使用js实现选项卡的效果,远不如JQuery方便,不可以链式调用,也不可以使用一些现成的方法,需要处理的元素,只能通过js去筛选去除,js实现的代码量远比JQuery多得多。

本文原创,原创不易,如需转载,请联系作者授权。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下使用 ES6 实现选项和注册登录的方法。 首先,我们可以使用 ES6 的 class 来创建一个选项对象。这个对象可以包含选项的 HTML 元素、选项标题的 HTML 元素、选项内容的 HTML 元素等。在对象的构造函数中,我们可以将这些元素作为参数传递进来,并将它们保存在对象的属性中。然后,我们可以为选项标题的 HTML 元素添加点击事件监听器,当用户点击标题时,我们可以通过修改选项内容的 HTML 元素的样式来切换选项。 接下来,我们可以使用 ES6 的模板字符串来创建注册登录的表单。我们可以创建一个包含用户名、密码和确认密码输入框以及注册和登录按钮的表单。当用户点击注册或登录按钮时,我们可以获取输入框的值,并将它们发送到后端进行验证和处理。 下面是一个简单的 ES6 实现选项和注册登录的示例代码: ```javascript class Tab { constructor(tabElement, titleElement, contentElement) { this.tabElement = tabElement; this.titleElement = titleElement; this.contentElement = contentElement; this.titleElement.addEventListener('click', () => { this.contentElement.classList.toggle('active'); }); } } const tab1 = new Tab( document.querySelector('.tab1'), document.querySelector('.tab1-title'), document.querySelector('.tab1-content') ); const tab2 = new Tab( document.querySelector('.tab2'), document.querySelector('.tab2-title'), document.querySelector('.tab2-content') ); const formTemplate = ` <form> <label for="username">Username:</label> <input type="text" id="username" name="username"> <label for="password">Password:</label> <input type="password" id="password" name="password"> <label for="confirm-password">Confirm Password:</label> <input type="password" id="confirm-password" name="confirm-password"> <button type="submit" id="register-btn">Register</button> <button type="submit" id="login-btn">Login</button> </form> `; document.querySelector('.register-login-form').innerHTML = formTemplate; ``` 当然,这只是一个简单的示例代码,实际应用中还需要进行更多的处理和验证。希望这个示例代码能够帮助您了解使用 ES6 实现选项和注册登录的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值