移动端Tab切换下划线滑动效果实现

作者:青柠时间:2026-10-23 10:56:54浏览:596

本文介绍如何在移动端实现Tab切换时下划线的滑动效果。通过JavaScript监听点击事件,结合CSS3的transition属性,实现当前Tab下划线出现与前一个Tab下划线消失的平滑过渡,提升用户交互体验。

移动端Tab下划线滑动效果实现

本文将展示多种下划线滑动效果的实现方式,并会持续更新补充更多内容。

第一种效果是:当当前Tab显示下划线时,前一个Tab的下划线同时消失,且出现与消失的方向保持一致,并带有平滑的过渡动画。

移动端Tab下划线滑动效果实现


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>change tab</title>
 <style>
 ul {
  display: flex;
  position: absolute;
  width: 800px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  list-style: none;
 }
 li {
  position: relative;
  padding: 20px;
  color: #000;
  line-height: 1;
  transition: 0.2s all linear;
  cursor: pointer;
 }
 li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 100%;
  width: 0;
  height: 100%;
  border-bottom: 2px solid #f00;
  transition: 0.2s all linear;
 }
 
 li:active {
  background: #000;
  color: #fff;
 }
 
 .active ~ li::before {
  left: 0;
 }
 .active::before {
  width: 100%;
  left: 0;
  top: 0;
 }
 .hover::before{
  width: 200%;
 }
 </style>
</head>
<body>
 <ul>
  <li class="active tab" data-index='0'> 张杰 </li>
  <li class="tab" data-index='1'>周杰伦</li>
  <li class="tab" data-index='2'>林俊杰</li>
  <li class="tab" data-index='3'>薛之谦</li>
  <li class="tab" data-index='4'>你</li>
 </ul>
</body>
<script>
 var lis = document.getElementsByClassName('tab');
 for(var i=0; i<lis.length; i++){
 lis[i].onclick = function(){
  var that = this;
  for(var i=0; i<lis.length; i++){
  lis[i].classList.remove('active')
  this.classList.add('active')
  }
 }
 }
</script>
</html>

以上内容为本文的全部讲解,希望能为您的学习提供一定帮助,也欢迎大家继续支持本站。

作者最新文章