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

搜索
博主信息
博文 40
粉絲 0
評論 0
訪問量 26139
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
仿寫輪播圖
飛天001
原創(chuàng)
443人瀏覽過

按3月30日的課程,仿寫輪播圖.

  1. <div class="slideshow">
  2. <!-- 1. 圖片 -->
  3. <div class="imgs"></div>
  4. <!-- 2. 按鈕 -->
  5. <div class="btns"></div>
  6. </div>

html頁面的js代碼

  1. <script type="module">
  2. // 獲取圖片組的入口,即是圖片元素
  3. const imgs = document.querySelector('.imgs')
  4. // 獲取按鈕組的入口,
  5. const btns = document.querySelector('.btns')
  6. // console.log(imgs,btns);
  7. /**
  8. * 當(dāng)前輪播圖至少需要4個函數(shù)
  9. * 1.創(chuàng)建圖片組
  10. * 2.創(chuàng)建按鈕組
  11. * 3.創(chuàng)建按鈕事件:實現(xiàn)點擊按鈕,圖片切換
  12. * 4.定時輪播器:間歇式輪播()
  13. */
  14. //導(dǎo)入輪播圖模塊slideshow.js
  15. import slide from './js/slideshow.js'
  16. //自動加載
  17. window.onload = function(){
  18. //1.創(chuàng)建圖片組
  19. slide.createImg(imgs)
  20. //2.創(chuàng)建按鈕組
  21. slide.createBtn(btns)
  22. //3. 創(chuàng)建按鈕時間:實現(xiàn)圖片切換
  23. // 因為要拿到索引,所以不適合用事件代理
  24. // 一個一個單獨添加點擊事件
  25. ;[...btns.children].forEach(function(btn){
  26. btn.onclick = function(){
  27. slide.switchImg(this,imgs)
  28. }
  29. })
  30. // 4.定時輪播器:間歇式輪播()
  31. // const btnsArr = [...btns.children]//聲明按鈕數(shù)組
  32. //Object.keys(): 返回一個對象中索引組成的數(shù)組(返回對象索引組成的數(shù)組)
  33. //console.log(Object.keys([13,4,6,7]));返回: ['0', '1', '2', '3']
  34. // console.log(Object.keys(btnsArr));
  35. //間歇式定時器.每2秒換一張圖
  36. setInterval(function(btnsArr,btnKeys){
  37. console.log(btnsArr,btnKeys);
  38. slide.timerAuto(btnsArr, btnKeys);
  39. },
  40. 2000,
  41. [...btns.children],
  42. Object.keys([...btns.children])
  43. )
  44. }
  45. </script>

js代碼

  1. // import {imgArr} from './data.js' //導(dǎo)出
  2. import imgArr from './data.js' //data.js是默認導(dǎo)出,這里可以自定義導(dǎo)出名字
  3. /**
  4. * 當(dāng)前輪播圖至少需要4個函數(shù)
  5. * 1.創(chuàng)建圖片組
  6. * 2.創(chuàng)建按鈕組
  7. * 3.創(chuàng)建按鈕事件:實現(xiàn)點擊按鈕,圖片切換
  8. * 4.定時輪播器:間歇式輪播()
  9. */
  10. /**
  11. * 1. 創(chuàng)建圖片組
  12. */
  13. function createImg(imgs){
  14. // console.log(imgArr.length);
  15. for(let i=0;i<imgArr.length;i++){
  16. const img = document.createElement('img')
  17. //為每個元素添加自定義屬性data-key
  18. img.dataset.key = imgArr[i].key
  19. img.src = imgArr[i].src
  20. const a = document.createElement('a')
  21. // a.href = imgArr[i].url
  22. // img.append(a)
  23. imgs.append(img)
  24. //為第一個元素添加active屬性
  25. // if(i==0){
  26. // img.classList.add('active')
  27. // }
  28. i==0?img.classList.add('active'):''
  29. }
  30. }
  31. function createBtn(btns){
  32. for(let i=0;i<imgArr.length;i++){
  33. const btn = document.createElement('span')
  34. //為每個按鈕添加自動以屬性data-key
  35. btn.dataset.key = imgArr[i].key
  36. btns.append(btn)
  37. i==0?btn.classList.add('active'):''
  38. }
  39. }
  40. //3.創(chuàng)建按鈕事件:實現(xiàn)點擊按鈕,圖片切換
  41. function switchImg(btn,imgs){
  42. //1.點擊按鈕去掉所有按鈕和圖片的激活狀態(tài)
  43. ;[...btn.parentNode.children].forEach(item =>item.classList.remove('active'))
  44. ;[...imgs.children].forEach(item=>item.classList.remove('active'))
  45. //2.根據(jù)當(dāng)前用戶點擊的按鈕設(shè)置為激活狀態(tài)active
  46. btn.classList.add('active')
  47. // 3. 設(shè)置當(dāng)前點擊的按鈕的自定義屬性和圖片的自定義屬性相同的圖片顯示
  48. //根據(jù)當(dāng)前按鈕的key,找到對應(yīng)的圖片
  49. //btn.dataset == img.dataset.key
  50. // ;[...imgs.children].forEach(item=>{(item.dataset.key==btn.dataset.key)?item.classlist.add('active'):''})
  51. const currImg = [...imgs.children].find(item=>item.dataset.key==btn.dataset.key)
  52. currImg.classList.add('active')
  53. // console.log(currImg);
  54. }
  55. //4.定時輪播器:間歇式輪播()
  56. function timerAuto(btnsArr,btnKeys){
  57. //定時器 + 事件派發(fā)
  58. //setInterval = dispatchEvent
  59. //1.從頭部取一個索引,第一個索引
  60. let key = btnKeys.shift()
  61. //2.根據(jù)索引,從按鈕組中找到與該索引對應(yīng)的按鈕,給它自動派發(fā)點擊事件
  62. btnsArr[key].dispatchEvent(new Event('click'))
  63. //3.將取出的按鈕,再次放入到按鈕數(shù)組的尾部,實現(xiàn)首尾相連
  64. btnKeys.push(key)
  65. }
  66. //導(dǎo)出,
  67. export default{
  68. imgArr,
  69. createImg,
  70. createBtn,
  71. switchImg,
  72. timerAuto
  73. }

效果圖

批改老師:PHPzPHPz

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

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

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

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