经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
jq+swiper 实现今日头条App的选项卡效果
来源:cnblogs  作者:<_/>  时间:2019/7/4 8:50:02  对本文有异议
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>今日头条APP顶部点击可居中导航</title>
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
  8. <link rel="stylesheet" href="https://cdn.bootcss.com/Swiper/4.0.6/css/swiper.min.css">
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. }
  14. #topNav {
  15. width: 100%;
  16. overflow: hidden;
  17. font: 18px;
  18. }
  19. #topNav .swiper-slide {
  20. padding: 0 10px;
  21. width: auto;
  22. text-align: center;
  23. }
  24. #topNav .swiper-slide span {
  25. transition: all .3s ease;
  26. display: block;
  27. }
  28. #topNav .active span {
  29. color: #FF2D2D;
  30. border-bottom: 3px solid #FF2D2D;
  31. }
  32. .tab-list {
  33. display: none;
  34. }
  35. </style>
  36. </head>
  37.  
  38. <body>
  39. <div id="topNav" class="swiper-container">
  40. <div class="swiper-wrapper">
  41. <div class="swiper-slide active"><span>首页</span></div>
  42. <div class="swiper-slide"><span>热点</span></div>
  43. <div class="swiper-slide"><span>汽车</span></div>
  44. <div class="swiper-slide"><span>视频</span></div>
  45. <div class="swiper-slide"><span>社会</span></div>
  46. <div class="swiper-slide"><span>娱发</span></div>
  47. <div class="swiper-slide"><span>科技</span></div>
  48. <div class="swiper-slide"><span>生活</span></div>
  49. <div class="swiper-slide"><span>敲门</span></div>
  50. <div class="swiper-slide"><span>理科</span></div>
  51. </div>
  52. </div>
  53. <div class="tab-list-box">
  54. <div class="tab-list" style="display:block;">内容1</div>
  55. <div class="tab-list">内容2</div>
  56. <div class="tab-list">内容3</div>
  57. <div class="tab-list">内容4</div>
  58. <div class="tab-list">内容5</div>
  59. <div class="tab-list">内容6</div>
  60. <div class="tab-list">内容7</div>
  61. <div class="tab-list">内容8</div>
  62. <div class="tab-list">内容9</div>
  63. <div class="tab-list">内容10</div>
  64. </div>
  65.  
  66.  
  67. <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  68. <script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.4.2/js/swiper.js"></script>
  69. <script type="text/javascript">
  70. var mySwiper = new Swiper('#topNav', {
  71. freeMode: true,
  72. freeModeMomentumRatio: 0.5,
  73. slidesPerView: 'auto',
  74. });
  75. swiperWidth = mySwiper.container[0].clientWidth
  76. maxTranslate = mySwiper.maxTranslate();
  77. maxWidth = -maxTranslate + swiperWidth / 2
  78. $(".swiper-container").on('touchstart', function (e) {
  79. e.preventDefault()
  80. })
  81. mySwiper.on('tap', function (swiper, e) {
  82. // e.preventDefault()
  83. slide = swiper.slides[swiper.clickedIndex]
  84. slideLeft = slide.offsetLeft
  85. slideWidth = slide.clientWidth
  86. slideCenter = slideLeft + slideWidth / 2
  87. // 被点击slide的中心点
  88. mySwiper.setWrapperTransition(300)
  89. if (slideCenter < swiperWidth / 2) {
  90. mySwiper.setWrapperTranslate(0)
  91. } else if (slideCenter > maxWidth) {
  92. mySwiper.setWrapperTranslate(maxTranslate)
  93. } else {
  94. nowTlanslate = slideCenter - swiperWidth / 2
  95. mySwiper.setWrapperTranslate(-nowTlanslate)
  96. }
  97. $("#topNav .active").removeClass('active');
  98. $("#topNav .swiper-slide").eq(swiper.clickedIndex).addClass('active');
  99. $(".tab-list").eq(swiper.clickedIndex).fadeIn().siblings('.tab-list').hide();
  100. });
  101. </script>
  102. </body>
  103.  
  104. </html>

 

原文链接:http://www.cnblogs.com/wangjae/p/11126981.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号