当前位置:   article > 正文

js实现点击切换导航栏效果(排他思想)_js导航栏切换

js导航栏切换

实现导航栏点击切换不同的颜色效果有很多种,下面是以js为例

具体实现步骤:

1.使用div 布局 ,

  1. <div class="container">
  2. <ul class="content-box">
  3. <li class="active">首页</li>
  4. <li>个人中心</li>
  5. <li>游戏中心</li>
  6. <li>创作中心</li>
  7. </ul>
  8. </div>

2.设置样式,给ul 设置宽高 ,使用 display:flex 使其li 元素 横向排列 ,同时居中导航栏。

  1. * {
  2. margin: 0;
  3. padding: 0;
  4. }
  5. li{
  6. list-style: none; /* 去除下划线 */
  7. }
  8. .content-box{
  9. width: 500px;
  10. height: 200px;
  11. /* border: 1px solid #000; */
  12. display: flex;
  13. justify-content: space-between;
  14. margin: 0 auto;
  15. }

3.然后给li 设置 样式,给每个li 设置宽高 ,添加boder属性,采用display:flex ,让内部文字上下居中。

  1. .content-box li {
  2. border: 1px solid #000;
  3. width: 25%;
  4. height: 25%;
  5. justify-content: center;
  6. align-items: center;
  7. display: flex;
  8. cursor: pointer;
  9. }

4.默认第一个li 是选中的,所以给第一个li 设置背景颜色样式

  1. .active {
  2. background-color: pink;
  3. }

5.使用js代码,首先获取全部的li标签

  let lis = document.querySelectorAll('li')

6.使用for 循环 遍历全部li元素,给每个li元素设置监听事件,同时再使用一次for 循环,利用排他思想,点击当前的元素时,背景颜色发生变化,同时移除其他标签的背景颜色,这里用到classList属性的add()方法以及remove()方法

  1. for (let i = 0 ; i < lis.length; i++) {
  2. lis[i].setAttribute('index',i)
  3. lis[i].onclick = function() {
  4. // console.log(lis[i]);
  5. for (let i = 0 ; i < lis.length; i++) {
  6. lis[i].classList.remove('active')
  7. }
  8. this.classList.add('active')
  9. }
  10. }

7.最终效果如下:

初始状态:

点击切换效果:

附注全部代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. li{
  14. /* 去除下划线 */
  15. list-style: none;
  16. }
  17. .content-box{
  18. width: 500px;
  19. height: 200px;
  20. /* border: 1px solid #000; */
  21. display: flex;
  22. justify-content: space-between;
  23. margin: 0 auto;
  24. }
  25. .content-box li {
  26. border: 1px solid #000;
  27. width: 25%;
  28. height: 25%;
  29. justify-content: center;
  30. align-items: center;
  31. display: flex;
  32. cursor: pointer;
  33. }
  34. .active {
  35. background-color: pink;
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div class="container">
  41. <ul class="content-box">
  42. <li class="active">首页</li>
  43. <li>个人中心</li>
  44. <li>游戏中心</li>
  45. <li>创作中心</li>
  46. </ul>
  47. </div>
  48. <script>
  49. let uls = document.querySelector('.content-box')
  50. let lis = document.querySelectorAll('li')
  51. for (let i = 0 ; i < lis.length; i++) {
  52. lis[i].setAttribute('index',i)
  53. lis[i].onclick = function() {
  54. // console.log(lis[i]);
  55. for (let i = 0 ; i < lis.length; i++) {
  56. lis[i].classList.remove('active')
  57. }
  58. this.classList.add('active')
  59. }
  60. // let index = lis[i].getAttribute('index');
  61. // console.log(index);
  62. }
  63. </script>
  64. </body>
  65. </html>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/69347
推荐阅读
相关标签
  

闽ICP备14008679号