当前位置:   article > 正文

用js做点击切换携程旅游

用js做点击切换携程旅游

样式:

  1. <style>
  2. .domestic {
  3. width: 1200px;
  4. margin: 50px auto;
  5. }
  6. .domestic span {
  7. padding: 2px 10px;
  8. margin: 10px 10px;
  9. border-radius: 12px;
  10. cursor: pointer;
  11. float: left;
  12. border: 1px solid transparent;
  13. }
  14. .domestic > div span:hover {
  15. border-color: #f66;
  16. background: #fff;
  17. color: #f66;
  18. }
  19. .domestic span.active {
  20. background: #f66;
  21. color: #fff;
  22. }
  23. .tab_theme {
  24. margin: 0;
  25. padding: 0;
  26. width: 1220px;
  27. height: 202px;
  28. list-style: none;
  29. }
  30. .tab_theme > li {
  31. float: left;
  32. width: 293px;
  33. margin: 0 10px 0 0;
  34. overflow: hidden;
  35. position: relative;
  36. }
  37. .tab_theme > li img {
  38. display: block;
  39. width: 100%;
  40. margin-top: -20px;
  41. position: relative;
  42. bottom: 0;
  43. -webkit-transiton: bottom 0.3s;
  44. transition: bottom 0.3s;
  45. }
  46. .tab_theme .city_name {
  47. position: absolute;
  48. color: #fff;
  49. top: 130px;
  50. left: 0;
  51. font-size: 30px;
  52. text-indent: 0.5em;
  53. text-shadow: 1px 1px 7px #000;
  54. }
  55. .clearfix:after {
  56. content: '';
  57. display: block;
  58. height: 0;
  59. clear: both;
  60. visibility: hidden;
  61. }
  62. </style>

html:

  1. <div class="domestic">
  2. <div class="clearfix">
  3. <span class="active">登高踏青</span>
  4. <span>小憩温泉</span>
  5. <span>天然氧吧</span>
  6. <span>草原撒欢</span>
  7. </div>
  8. <ul class="tab_theme">
  9. <!-- <li>
  10. <a href="#">
  11. <div class="pic_add">
  12. <img
  13. alt="黄山"
  14. src="http://img.elongstatic.com/index/termini/dgtq-hs.jpg"
  15. />
  16. </div>
  17. <div class="city_name">黄山</div>
  18. </a>
  19. </li> -->
  20. </ul>
  21. </div>

js

  1. <script>
  2. const arr = [
  3. {
  4. data: [
  5. {
  6. name: '黄山',
  7. url: 'http://img.elongstatic.com/index/termini/dgtq-hs.jpg',
  8. },
  9. {
  10. name: '峨眉山',
  11. url: 'http://img.elongstatic.com/index/termini/dgtq-ems.jpg',
  12. },
  13. {
  14. name: '五台山',
  15. url: 'http://img.elongstatic.com/index/termini/dgtq-wts.jpg',
  16. },
  17. {
  18. name: '庐山',
  19. url: 'http://img.elongstatic.com/index/termini/dgtq-ls.jpg',
  20. },
  21. ],
  22. },
  23. {
  24. data: [
  25. {
  26. name: '江苏天目湖',
  27. url: 'http://img.elongstatic.com/index/termini/hbtl-tianmuhu.jpg',
  28. },
  29. {
  30. name: '威海天沐威海温泉',
  31. url: 'http://img.elongstatic.com/index/termini/hbtl-tianmuweihai.jpg',
  32. },
  33. {
  34. name: '广东中山温泉',
  35. url: 'http://img.elongstatic.com/index/termini/hbtl-zhongshan.jpg',
  36. },
  37. {
  38. name: '辽宁大连安波温泉',
  39. url: 'http://img.elongstatic.com/index/termini/hbtl-anbo.jpg',
  40. },
  41. ],
  42. },
  43. {
  44. data: [
  45. {
  46. name: '拉萨',
  47. url: 'http://img.elongstatic.com/index/termini/hbtl-lasa.jpg',
  48. },
  49. {
  50. name: '大理',
  51. url: 'http://img.elongstatic.com/index/termini/hbtl-dali.jpg',
  52. },
  53. {
  54. name: '舟山',
  55. url: 'http://img.elongstatic.com/index/termini/hbtl-zhoushan.jpg',
  56. },
  57. {
  58. name: '厦门',
  59. url: 'http://img.elongstatic.com/index/termini/hbtl-xiamen.jpg',
  60. },
  61. ],
  62. },
  63. {
  64. data: [
  65. {
  66. name: '锡林郭勒',
  67. url: 'http://img.elongstatic.com/index/termini/cysh-xlgl.jpg',
  68. },
  69. {
  70. name: '坝上',
  71. url: 'http://img.elongstatic.com/index/termini/cysh-bs.jpg',
  72. },
  73. {
  74. name: '若尔盖',
  75. url: 'http://img.elongstatic.com/index/termini/cysh-reg.jpg',
  76. },
  77. {
  78. name: '祁连山',
  79. url: 'http://img.elongstatic.com/index/termini/cysh-qls.jpg',
  80. },
  81. ],
  82. },
  83. ]
  84. // 获取所有tab栏
  85. const spans = document.querySelectorAll('.domestic span')
  86. // 循环绑定事件
  87. for (let i = 0; i < spans.length; i++) {
  88. spans[i].addEventListener('click', function () {
  89. // 让自己高亮 其余移除
  90. document.querySelector('.domestic .active').classList.remove('active')
  91. this.classList.add('active')
  92. // 图片切换
  93. render(i)
  94. })
  95. }
  96. function render(index) {
  97. const ary = arr[index].data
  98. let str = ''
  99. for (let i = 0; i < ary.length; i++) {
  100. str += `
  101. <li>
  102. <a href="#">
  103. <div class="pic_add">
  104. <img
  105. alt="${ary[i].name}"
  106. src="${ary[i].url}"
  107. />
  108. </div>
  109. <div class="city_name">${ary[i].name}</div>
  110. </a>
  111. </li>
  112. `
  113. }
  114. document.querySelector('.tab_theme').innerHTML = str
  115. }
  116. render(0)
  117. </script>

效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/39340
推荐阅读
相关标签
  

闽ICP备14008679号