亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 48
粉絲 0
評(píng)論 0
訪問量 44771
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
選項(xiàng)卡,懶加載和輪播圖簡單演示(0817)
丶久而舊之丶
原創(chuàng)
987人瀏覽過

JS事件操作

選項(xiàng)卡

  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>選項(xiàng)卡案例</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. }
  12. a {
  13. text-decoration: none;
  14. color: green;
  15. }
  16. li {
  17. list-style-type: none;
  18. }
  19. .tab {
  20. height: 36px;
  21. display: flex;
  22. }
  23. .tabs {
  24. width: 300px;
  25. height: 300px;
  26. margin: auto;
  27. margin-top: 50px;
  28. background-color: papayawhip;
  29. display: flex;
  30. flex-direction: column;
  31. }
  32. .tab li {
  33. flex: auto;
  34. text-align: center;
  35. line-height: 36px;
  36. background-color: white;
  37. }
  38. .tab li.active {
  39. background-color: papayawhip;
  40. }
  41. .item {
  42. padding: 20px;
  43. display: none;
  44. }
  45. .item.active {
  46. display: block;
  47. }
  48. </style>
  49. </head>
  50. <body>
  51. <div class='tabs'>
  52. <!-- 導(dǎo)航區(qū) -->
  53. <ul class="tab">
  54. <li class="active" data-index="1">香煙</li>
  55. <li data-index="2">啤酒</li>
  56. <li data-index="3">奶茶</li>
  57. </ul>
  58. <!-- 詳情區(qū) -->
  59. <ul class="item active" data-index="1">
  60. <li><a href="">中華</a></li>
  61. <li><a href="">玉溪</a></li>
  62. <li><a href="">芙蓉王</a></li>
  63. </ul>
  64. <ul class="item" data-index="2">
  65. <li><a href="">百威</a></li>
  66. <li><a href="">喜力</a></li>
  67. <li><a href="">青島</a></li>
  68. </ul>
  69. <ul class="item" data-index="3">
  70. <li><a href="">一點(diǎn)點(diǎn)</a></li>
  71. <li><a href="">快樂番薯</a></li>
  72. <li><a href="">古茗</a></li>
  73. </ul>
  74. </div>
  75. <script>
  76. var tab = document.querySelector(".tab");
  77. var items = document.querySelectorAll(".item");
  78. console.log(tab);
  79. console.log(items);
  80. tab.addEventListener("mouseover", function (ev) {
  81. // 先消除之前active樣式
  82. ev.currentTarget.childNodes.forEach(function (item) {
  83. if (item.nodeType === 1) item.classList.remove("active");
  84. });
  85. // 給事件觸發(fā)者添加樣式
  86. ev.target.classList.add("active");
  87. // 再清除詳情區(qū)樣式
  88. items.forEach(function (item) {
  89. // 先清除詳情區(qū)樣式
  90. item.classList.remove("active");
  91. // 判斷自定義屬性,相等的情況下顯示詳情區(qū)
  92. if (ev.target.dataset.index === item.dataset.index) {
  93. item.classList.add("active");
  94. }
  95. });
  96. // 顯示相應(yīng)詳情區(qū)
  97. })
  98. </script>
  99. </body>
  100. </html>

懶加載

  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>圖片懶加載</title>
  7. </head>
  8. <body>
  9. <div class="container">
  10. <img src="imgs/01.jpg" alt="" data-src="imgs/02.jpg">
  11. <img src="imgs/01.jpg" alt="" data-src="imgs/03.jpg">
  12. <img src="imgs/01.jpg" alt="" data-src="imgs/04.jpg">
  13. <img src="imgs/01.jpg" alt="" data-src="imgs/05.jpg">
  14. <img src="imgs/01.jpg" alt="" data-src="imgs/06.jpg">
  15. <img src="imgs/01.jpg" alt="" data-src="imgs/07.jpg">
  16. <img src="imgs/01.jpg" alt="" data-src="imgs/02.jpg">
  17. <img src="imgs/01.jpg" alt="" data-src="imgs/03.jpg">
  18. <img src="imgs/01.jpg" alt="" data-src="imgs/04.jpg">
  19. <img src="imgs/01.jpg" alt="" data-src="imgs/05.jpg">
  20. <img src="imgs/01.jpg" alt="" data-src="imgs/06.jpg">
  21. <img src="imgs/01.jpg" alt="" data-src="imgs/07.jpg">
  22. <img src="imgs/01.jpg" alt="" data-src="imgs/02.jpg">
  23. <img src="imgs/01.jpg" alt="" data-src="imgs/03.jpg">
  24. <img src="imgs/01.jpg" alt="" data-src="imgs/04.jpg">
  25. <img src="imgs/01.jpg" alt="" data-src="imgs/05.jpg">
  26. <img src="imgs/01.jpg" alt="" data-src="imgs/06.jpg">
  27. <img src="imgs/01.jpg" alt="" data-src="imgs/07.jpg">
  28. <img src="imgs/01.jpg" alt="" data-src="imgs/02.jpg">
  29. <img src="imgs/01.jpg" alt="" data-src="imgs/03.jpg">
  30. <img src="imgs/01.jpg" alt="" data-src="imgs/04.jpg">
  31. <img src="imgs/01.jpg" alt="" data-src="imgs/05.jpg">
  32. <img src="imgs/01.jpg" alt="" data-src="imgs/06.jpg">
  33. <img src="imgs/01.jpg" alt="" data-src="imgs/07.jpg">
  34. <img src="imgs/01.jpg" alt="" data-src="imgs/02.jpg">
  35. <img src="imgs/01.jpg" alt="" data-src="imgs/03.jpg">
  36. <img src="imgs/01.jpg" alt="" data-src="imgs/04.jpg">
  37. <img src="imgs/01.jpg" alt="" data-src="imgs/05.jpg">
  38. <img src="imgs/01.jpg" alt="" data-src="imgs/06.jpg">
  39. <img src="imgs/01.jpg" alt="" data-src="imgs/07.jpg">
  40. </div>
  41. <script>
  42. var imgs = document.querySelectorAll(".container>img");
  43. window.addEventListener("scroll", function () {
  44. // 獲取文檔高度
  45. var clientHeight = document.documentElement.clientHeight;
  46. // 獲取文檔的滾動(dòng)高度
  47. var scroll = document.documentElement.scrollTop;
  48. // console.log(imgs);
  49. imgs.forEach(function (item) {
  50. if (item.offsetTop <= clientHeight + scroll) {
  51. item.src = item.dataset.src;
  52. }
  53. });
  54. });
  55. </script>
  56. </body>
  57. </html>

輪播圖

  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>輪播圖案例</title>
  7. <style>
  8. ul,
  9. li {
  10. margin: 0;
  11. padding: 0;
  12. list-style: none;
  13. }
  14. .box {
  15. position: relative;
  16. width: 800px;
  17. height: 400px;
  18. margin: 10px auto;
  19. padding-top: 50px;
  20. overflow: hidden;
  21. }
  22. .box .slider {
  23. width: 800px;
  24. height: 400px;
  25. float: left;
  26. }
  27. .box .point-list {
  28. position: absolute;
  29. left: 50%;
  30. margin-left: -38px;
  31. top: 420px;
  32. }
  33. .box .point-list .point {
  34. display: inline-block;
  35. width: 12px;
  36. height: 12px;
  37. margin: 0 5px;
  38. background-color: white;
  39. border-radius: 100%;
  40. }
  41. .box .point-list .point.active {
  42. background-color: #666666;
  43. }
  44. .box .point-list .point:hover {
  45. cursor: pointer;
  46. }
  47. .skip {
  48. position: absolute;
  49. top: 220px;
  50. display: inline-block;
  51. margin: 10px;
  52. padding-bottom: 3px 5px;
  53. width: 40px;
  54. height: 40px;
  55. text-align: center;
  56. line-height: 40px;
  57. background-color: lightslategray;
  58. color: white;
  59. opacity: 0.4;
  60. font-size: 36px;
  61. border-radius: 50%;
  62. }
  63. .box .next {
  64. right: 0;
  65. }
  66. .box .skip:hover {
  67. cursor: pointer;
  68. opacity: 0.7;
  69. color: black;
  70. }
  71. .container {
  72. width: 4800px;
  73. position: absolute;
  74. left: -800px;
  75. overflow: hidden;
  76. }
  77. </style>
  78. </head>
  79. <body>
  80. <div class="box">
  81. <div class='container'>
  82. <img src="/0817/imgs/07.jpg" alt=" " data-index="4" class="slider">
  83. <img src="/0817/imgs/03.jpg" alt=" " data-index="1" class="slider">
  84. <img src="/0817/imgs/08.jpg" alt=" " data-index="2" class="slider">
  85. <img src="/0817/imgs/06.jpg" alt=" " data-index="3" class="slider">
  86. <img src="/0817/imgs/07.jpg" alt=" " data-index="4" class="slider">
  87. <img src="/0817/imgs/03.jpg" alt=" " data-index="1" class="slider">
  88. </div>
  89. <div class="point-list">
  90. </div>
  91. <span class="skip prev">&lt;</span>
  92. <span class="skip next">&gt;</span>
  93. </div>
  94. <script>
  95. // 圖片div
  96. var div = document.querySelector(".container");
  97. // 獲取按鈕
  98. var next = document.querySelector(".next");
  99. var prev = document.querySelector(".prev");
  100. // 獲取小圓點(diǎn)父級(jí)
  101. var pointlist = document.querySelector(".point-list");
  102. // 獲取整個(gè)的div
  103. var box = document.querySelector(".box");
  104. var index = 1;
  105. // 生成小圓點(diǎn)
  106. for (var i = 0; i < 4; i++) {
  107. var span = document.createElement("span");
  108. // 添加樣式和自定義屬性
  109. span.classList.add("point");
  110. span.dataset.index = i + 1;
  111. // 默認(rèn)第一個(gè)高亮
  112. if (span.dataset.index == 1) {
  113. span.classList.add("active");
  114. }
  115. pointlist.appendChild(span);
  116. }
  117. // 判斷小圓點(diǎn)顯示函數(shù)
  118. function navmove() {
  119. for (var i = 0; i < span.length; i++) {
  120. span[i].classList.remove("active");
  121. }
  122. if (index >= 5) {
  123. span[index - 5].classList.add("active");
  124. } else if (index <= 0) {
  125. span[index + 3].classList.add("active");
  126. } else {
  127. span[index - 1].classList.add("active");
  128. }
  129. }
  130. // 獲取樣式屬性
  131. function getStyle(obj, attr) {
  132. if (obj.currentStyle) {
  133. return obj.currentStyle[attr];
  134. } else {
  135. return getComputedStyle(obj, null)[attr];
  136. }
  137. }
  138. // 運(yùn)動(dòng)速度函數(shù)
  139. function animate(obj) {
  140. clearInterval(obj.timer);
  141. obj.timer = setInterval(function () {
  142. var a = parseInt(getStyle(div, "left"));
  143. var speed = ((-800 * index) - a) / 8;
  144. speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
  145. // console.log(speed);
  146. if (a === (-800 * index)) {
  147. clearInterval(obj.timer);
  148. } else {
  149. div.style.left = a + speed + "px";
  150. }
  151. }, 30);
  152. }
  153. // 給小圓點(diǎn)綁定是點(diǎn)擊事件
  154. var span = document.querySelectorAll(".point");
  155. pointlist.addEventListener("click", function (ev) {
  156. index = ev.target.dataset.index;
  157. if (ev.target.dataset.index) {
  158. // 調(diào)用運(yùn)動(dòng)函數(shù)
  159. animate(span);
  160. navmove();
  161. }
  162. })
  163. // 上一頁點(diǎn)擊事件
  164. prev.addEventListener("click", function () {
  165. index--;
  166. console.log(index);
  167. animate(prev);
  168. // 判斷是否到頭,到頭重新定位
  169. if (index === -1) {
  170. div.style.left = "-3200px";
  171. index = 3;
  172. }
  173. navmove();
  174. });
  175. // 下一頁點(diǎn)擊事件
  176. next.addEventListener("click", function () {
  177. index++;
  178. animate(next);
  179. // 判斷是否到頭,到頭重新定位
  180. if (index === 6) {
  181. div.style.left = "-800px";
  182. index = 2;
  183. }
  184. navmove();
  185. });
  186. // 自動(dòng)播放
  187. function time() {
  188. index++;
  189. animate(next);
  190. if (index === 6) {
  191. div.style.left = "-800px";
  192. index = 2;
  193. }
  194. navmove();
  195. }
  196. var int = setInterval(time, 2000)
  197. // 鼠標(biāo)移入停止播放
  198. box.addEventListener("mouseover", function () {
  199. clearInterval(int);
  200. console.log(100);
  201. })
  202. // 鼠標(biāo)移出重新播放
  203. box.addEventListener("mouseout", function () {
  204. int = setInterval(time, 2000);
  205. })
  206. </script>
  207. </body>
  208. </html>

總結(jié)

1.輪播圖的滑動(dòng)效果弄了好久才勉強(qiáng)滿意 -_-||
2.對(duì)于js的事件操作更清楚了些

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:看上去還是不錯(cuò)的, 抽空 了解一下html標(biāo)簽中的新增的懶加載屬性
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)