练习6_猫眼电影.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <script src="./js/rem.js"></script>
  8. <link rel="stylesheet" href="https://at.alicdn.com/t/c/font_4824002_e22sgrscvlh.css">
  9. <style>
  10. body{
  11. margin: 0;
  12. }
  13. ul{
  14. margin: 0;
  15. padding: 0;
  16. }
  17. li{
  18. list-style: none;
  19. }
  20. .container header{
  21. width: 100%;
  22. height: 1rem;
  23. background-color: #e54847;
  24. display: flex;
  25. justify-content: center;
  26. align-items: center;
  27. position: relative;
  28. }
  29. .container header span{
  30. font-size: .3rem;
  31. color: #fff;
  32. }
  33. .container header i{
  34. position: absolute;
  35. right: 20px;
  36. top:50%;
  37. transform: translateY(-50%);
  38. color: #fff;
  39. font-size: .5rem;
  40. }
  41. .container .menu-list{
  42. width: 2rem;
  43. background-color: #fff;
  44. box-shadow: 0 .06rem .18rem 0 rgba(0,0,0,.5);
  45. position: absolute;
  46. top: .9rem;
  47. right: .9rem;
  48. }
  49. .container .menu-list li{
  50. font-size: .3rem;
  51. text-align: center;
  52. height: 0.9rem;
  53. line-height: .9rem;
  54. color: #333;
  55. border:1px solid #f0f0f0;
  56. }
  57. /* nav 部分 */
  58. nav{
  59. height: 1rem;
  60. border-bottom: .02rem solid #aaa;
  61. display: flex;
  62. justify-content: space-between;
  63. }
  64. nav .address{
  65. font-size: .3rem;
  66. color: #666;
  67. padding-left: .3rem;
  68. display: flex;
  69. align-items: center;
  70. }
  71. nav .address i{
  72. /* border:.3rem solid transparent; */
  73. /* border: .1rem solid #666; */
  74. border-top: .1rem solid #b0b0b0;
  75. border-bottom: .1rem solid transparent;
  76. border-left: .1rem solid transparent;
  77. border-right: .1rem solid transparent;
  78. display: block;
  79. width: 0;
  80. height: 0;
  81. transform: translate(.08rem,.08rem);
  82. }
  83. nav .tab-content{
  84. flex-grow: 1;
  85. position: relative;
  86. }
  87. nav .tab-content::after{
  88. content: '';
  89. display: block;
  90. height: .06rem;
  91. width: 5.3vw;
  92. background-color: #f03d37;
  93. position: absolute;
  94. bottom: .1rem;
  95. border-radius: 2px;
  96. transition: left .2s;
  97. }
  98. nav .tab-content[data-active="one"]::after{
  99. left: 6vw;
  100. }
  101. nav .tab-content[data-active="two"]::after{
  102. left: 20vw;
  103. }
  104. nav .tab-content[data-active="three"]::after{
  105. left: 34vw;
  106. }
  107. nav .tab-content[data-active="four"]::after{
  108. left: 51vw;
  109. }
  110. nav .tab-content ul{
  111. display: flex;
  112. align-items: center;
  113. height: 1rem;
  114. margin-left: .2rem;
  115. }
  116. nav .tab-content li{
  117. font-size: .3rem;
  118. font-weight: 700;
  119. color: #666;
  120. margin:0 .2rem;
  121. }
  122. nav .tab-content .active{
  123. color: #333;
  124. font-size: .34rem;
  125. }
  126. nav .search{
  127. padding: .2rem .3rem .2rem .2rem;
  128. display: flex;
  129. align-items: center;
  130. justify-content: center;
  131. }
  132. nav .search i{
  133. color: #e54847;
  134. font-size: .4rem;
  135. font-weight: 700;
  136. }
  137. </style>
  138. </head>
  139. <body>
  140. <div class="container">
  141. <header>
  142. <span>猫眼电影</span>
  143. <i id="menu-btn" class="iconfont icon-ego-menu"></i>
  144. <div class="menu-list" style="display: none;">
  145. <ul>
  146. <li>首页</li>
  147. <li>影片</li>
  148. <li>影院</li>
  149. <li>商城</li>
  150. </ul>
  151. </div>
  152. </header>
  153. <nav>
  154. <div class="address">
  155. <span>北京</span>
  156. <i></i>
  157. </div>
  158. <div class="tab-content" data-active="one">
  159. <ul>
  160. <li data-val="one" class="active">热映</li>
  161. <li data-val="two" class="">影院</li>
  162. <li data-val="three" >待映</li>
  163. <li data-val="four">经典电影</li>
  164. </ul>
  165. </div>
  166. <div class="search">
  167. <i class="iconfont icon-search"></i>
  168. </div>
  169. </nav>
  170. <div class="content">
  171. <div class="like-movie"></div>
  172. <div class="movie-list"></div>
  173. </div>
  174. <footer></footer>
  175. </div>
  176. <script>
  177. let menuBtn = document.querySelector('#menu-btn');
  178. let menuList = document.querySelector('.menu-list');
  179. let topTab = document.querySelectorAll('.tab-content ul li');
  180. let topTabContent = document.querySelector(".tab-content");
  181. menuBtn.ontouchstart = function(){
  182. let thisStata = menuList.style.display;
  183. if(thisStata == 'none'){
  184. menuList.style.display = 'block';
  185. }else{
  186. menuList.style.display = 'none';
  187. }
  188. }
  189. // 为顶部tab绑定点击事件
  190. topTab.forEach((element) => {
  191. element.ontouchstart = function(){
  192. // 1. 清除所有tab的active类名
  193. topTab.forEach((item) => {
  194. item.classList.remove("active");
  195. })
  196. // 2. 给当前点击的tab添加active类名
  197. this.classList.add("active");
  198. // 3. 给当前点击的tab添加data-active属性
  199. topTabContent.setAttribute('data-active', this.dataset.val);
  200. }
  201. });
  202. </script>
  203. </body>
  204. </html>