国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用JS來(lái)實(shí)現(xiàn)輪播圖的效果

這篇具有很好參考價(jià)值的文章主要介紹了使用JS來(lái)實(shí)現(xiàn)輪播圖的效果。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最好今天分享一個(gè)使用JS制作的輪播圖效果

個(gè)人名片:
???作者簡(jiǎn)介:一名大一在校生,web前端開(kāi)發(fā)專(zhuān)業(yè)
????個(gè)人主頁(yè):幾何小超
???
座右銘:懶惰受到的懲罰不僅僅是自己的失敗,還有別人的成功。
???**學(xué)習(xí)目標(biāo):?堅(jiān)持每一次的學(xué)習(xí)打卡,學(xué)好前端

首先是HTML部分

<div class="slider">
    <div class="slider-wrapper">
      <img src="./images/slider01.jpg" alt="" />
    </div>
    <div class="slider-footer">
      <p>對(duì)人類(lèi)來(lái)說(shuō)會(huì)不會(huì)太超前了?</p>
      <ul class="slider-indicator">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
      <div class="toggle">
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>
      </div>
    </div>
  </div>

下一步是css部分

 * {
      box-sizing: border-box;
    }

    .slider {
      width: 560px;
      height: 400px;
      overflow: hidden;
    }

    .slider-wrapper {
      width: 100%;
      height: 320px;
    }

    .slider-wrapper img {
      width: 100%;
      height: 100%;
      display: block;
    }

    .slider-footer {
      height: 80px;
      background-color: rgb(100, 67, 68);
      padding: 12px 12px 0 12px;
      position: relative;
    }

    .slider-footer .toggle {
      position: absolute;
      right: 0;
      top: 12px;
      display: flex;
    }

    .slider-footer .toggle button {
      margin-right: 12px;
      width: 28px;
      height: 28px;
      appearance: none;
      border: none;
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
      border-radius: 4px;
      cursor: pointer;
    }

    .slider-footer .toggle button:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    .slider-footer p {
      margin: 0;
      color: #fff;
      font-size: 18px;
      margin-bottom: 10px;
    }

    .slider-indicator {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      align-items: center;
    }

    .slider-indicator li {
      width: 8px;
      height: 8px;
      margin: 4px;
      border-radius: 50%;
      background: #fff;
      opacity: 0.4;
      cursor: pointer;
    }

    .slider-indicator li.active {
      width: 12px;
      height: 12px;
      opacity: 1;
    }

之后就是來(lái)介紹一下JS實(shí)現(xiàn)輪播圖的效果

我們都知道輪播圖點(diǎn)一下右邊的箭頭或者是左邊的箭頭就可以滾動(dòng)頁(yè)面

所以我們第一步先做右邊的箭頭

還是先聲明一個(gè)數(shù)組,里面放了圖片,和文字和背景顏色

第一步我們先獲取三個(gè)元素,toggle()是一個(gè)方法調(diào)用,我是把左邊和右邊的寫(xiě)在一個(gè)方法,顯示更加美觀,,然后呢我們執(zhí)行右側(cè)按鈕業(yè)務(wù),還是先獲取右側(cè)按鈕,然后定義一個(gè)信息量i=0

因?yàn)槲覀兊膇需要進(jìn)行i++或者是i--的操作,所以在上面等單獨(dú)定義一個(gè)i=0,記住這里不能用const,只能用let

然后注冊(cè)點(diǎn)擊事件: next.addEventListener('click', function(),

但是當(dāng)我們輪播圖到了最后一個(gè),需要往返第一個(gè),這時(shí)候我們需要判斷,如果到了素組下標(biāo)為8的時(shí)候,我們就得返回第一個(gè)

// 1. 初始數(shù)據(jù)
    const sliderData = [
      { url: './images/slider01.jpg', title: '對(duì)人類(lèi)來(lái)說(shuō)會(huì)不會(huì)太超前了?', color: 'rgb(100, 67, 68)' },
      { url: './images/slider02.jpg', title: '開(kāi)啟劍與雪的黑暗傳說(shuō)!', color: 'rgb(43, 35, 26)' },
      { url: './images/slider03.jpg', title: '真正的jo廚出現(xiàn)了!', color: 'rgb(36, 31, 33)' },
      { url: './images/slider04.jpg', title: '李玉剛:讓世界通過(guò)B站看到東方大國(guó)文化', color: 'rgb(139, 98, 66)' },
      { url: './images/slider05.jpg', title: '快來(lái)分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
      { url: './images/slider06.jpg', title: '嗶哩嗶哩小年YEAH', color: 'rgb(166, 131, 143)' },
      { url: './images/slider07.jpg', title: '一站式解決你的電腦配置問(wèn)題?。?!', color: 'rgb(53, 29, 25)' },
      { url: './images/slider08.jpg', title: '誰(shuí)不想和小貓咪貼貼呢!', color: 'rgb(99, 72, 114)' },
    ]
   //獲取元素
   const img=document.querySelector('.slider-wrapper img')
   const p=document.querySelector('.slider-footer p')
   const footer=document.querySelector('.slider-footer')
  // 1右側(cè)按鈕業(yè)務(wù)
  // 1.1獲取右側(cè)按鈕
  const next=document.querySelector('.next')
  let i=0
 
  // 1.2注冊(cè)點(diǎn)擊事件
  next.addEventListener('click', function(){
    i++
    // 1.6判斷
    if(i>=8){
      i=0
    }
    toggle()
  })

2.右側(cè)的點(diǎn)擊事件和左側(cè)一樣,就是需要換一下判斷依據(jù),還要獲取的元素。前幾章我已經(jīng)說(shuō)過(guò)如何來(lái)得到對(duì)應(yīng)的對(duì)象,比如圖片,文字和背景顏色還有更新的小圓點(diǎn)

// 2.左側(cè)按鈕
  const prev=document.querySelector('.prev')
  prev.addEventListener('click', function(){
    i--
    // 1.6判斷
    i=i<0?sliderData.length-1:i
   toggle()
  })
  function toggle(){
//公共部分
 // 1.3得到對(duì)應(yīng)的對(duì)象
 img.src=sliderData[i].url
    p.innerHTML=sliderData[i].title
    footer.style.backgroundColor=sliderData[i].color
    // 1.5更換小圓點(diǎn)
    document.querySelector('.slider-indicator .active').classList.remove('active')
    document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')
  }

3,最后講一個(gè)功能,這里我們依舊是在定時(shí)器上面聲明一個(gè)變量,因?yàn)槲覀兌〞r(shí)器也是有一直在懂,所以我們來(lái)這塊設(shè)定一個(gè)點(diǎn)擊事件

然后我們加了這樣一個(gè)功能,比如鼠標(biāo)經(jīng)過(guò)盒子停止定時(shí)器,或者是離開(kāi)又開(kāi)始定時(shí)器的操作

通稱(chēng)都用了這兩個(gè)事件

第一個(gè)是鼠標(biāo)經(jīng)過(guò)停止事件,第二個(gè)是開(kāi)始事件,這樣呢我們一個(gè)完整的輪播圖就做出來(lái)了

slider.addEventListener('mouseenter', function(){

?slider.addEventListener('mouseleave', function()

// 3.自動(dòng)播放
  let timerId=setInterval(function(){
    next.click()
  },1000)
  // 4.鼠標(biāo)經(jīng)過(guò)大盒子,停止定時(shí)器
  const slider=document.querySelector('.slider')
  //注冊(cè)事件
  slider.addEventListener('mouseenter', function(){
    //停止定時(shí)器
    clearInterval(timerId)
  })
  // / 4.鼠標(biāo)經(jīng)過(guò)大盒子,開(kāi)啟定時(shí)器
  //注冊(cè)事件
  slider.addEventListener('mouseleave', function(){
    //停止定時(shí)器
    clearInterval(timerId)
   timerId = setInterval(function(){
    next.click()
  },1000)
  })

這是源碼

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>輪播圖點(diǎn)擊切換</title>
  <style>
    * {
      box-sizing: border-box;
    }

    .slider {
      width: 560px;
      height: 400px;
      overflow: hidden;
    }

    .slider-wrapper {
      width: 100%;
      height: 320px;
    }

    .slider-wrapper img {
      width: 100%;
      height: 100%;
      display: block;
    }

    .slider-footer {
      height: 80px;
      background-color: rgb(100, 67, 68);
      padding: 12px 12px 0 12px;
      position: relative;
    }

    .slider-footer .toggle {
      position: absolute;
      right: 0;
      top: 12px;
      display: flex;
    }

    .slider-footer .toggle button {
      margin-right: 12px;
      width: 28px;
      height: 28px;
      appearance: none;
      border: none;
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
      border-radius: 4px;
      cursor: pointer;
    }

    .slider-footer .toggle button:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    .slider-footer p {
      margin: 0;
      color: #fff;
      font-size: 18px;
      margin-bottom: 10px;
    }

    .slider-indicator {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      align-items: center;
    }

    .slider-indicator li {
      width: 8px;
      height: 8px;
      margin: 4px;
      border-radius: 50%;
      background: #fff;
      opacity: 0.4;
      cursor: pointer;
    }

    .slider-indicator li.active {
      width: 12px;
      height: 12px;
      opacity: 1;
    }
  </style>
</head>

<body>
  <div class="slider">
    <div class="slider-wrapper">
      <img src="./images/slider01.jpg" alt="" />
    </div>
    <div class="slider-footer">
      <p>對(duì)人類(lèi)來(lái)說(shuō)會(huì)不會(huì)太超前了?</p>
      <ul class="slider-indicator">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
      <div class="toggle">
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>
      </div>
    </div>
  </div>
  <script>
    // 1. 初始數(shù)據(jù)
    const sliderData = [
      { url: './images/slider01.jpg', title: '對(duì)人類(lèi)來(lái)說(shuō)會(huì)不會(huì)太超前了?', color: 'rgb(100, 67, 68)' },
      { url: './images/slider02.jpg', title: '開(kāi)啟劍與雪的黑暗傳說(shuō)!', color: 'rgb(43, 35, 26)' },
      { url: './images/slider03.jpg', title: '真正的jo廚出現(xiàn)了!', color: 'rgb(36, 31, 33)' },
      { url: './images/slider04.jpg', title: '李玉剛:讓世界通過(guò)B站看到東方大國(guó)文化', color: 'rgb(139, 98, 66)' },
      { url: './images/slider05.jpg', title: '快來(lái)分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
      { url: './images/slider06.jpg', title: '嗶哩嗶哩小年YEAH', color: 'rgb(166, 131, 143)' },
      { url: './images/slider07.jpg', title: '一站式解決你的電腦配置問(wèn)題?。?!', color: 'rgb(53, 29, 25)' },
      { url: './images/slider08.jpg', title: '誰(shuí)不想和小貓咪貼貼呢!', color: 'rgb(99, 72, 114)' },
    ]
   //獲取元素
   const img=document.querySelector('.slider-wrapper img')
   const p=document.querySelector('.slider-footer p')
   const footer=document.querySelector('.slider-footer')
  // 1右側(cè)按鈕業(yè)務(wù)
  // 1.1獲取右側(cè)按鈕
  const next=document.querySelector('.next')
  let i=0
 
  // 1.2注冊(cè)點(diǎn)擊事件
  next.addEventListener('click', function(){
    i++
    // 1.6判斷
    if(i>=8){
      i=0
    }
    toggle()
  })
  // 2.左側(cè)按鈕
  const prev=document.querySelector('.prev')
  prev.addEventListener('click', function(){
    i--
    // 1.6判斷
    i=i<0?sliderData.length-1:i
   toggle()
  })
  function toggle(){
 // 1.3得到對(duì)應(yīng)的對(duì)象
 img.src=sliderData[i].url
    p.innerHTML=sliderData[i].title
    footer.style.backgroundColor=sliderData[i].color
    // 1.5更換小圓點(diǎn)
    document.querySelector('.slider-indicator .active').classList.remove('active')
    document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')
  }



  // 3.自動(dòng)播放
  let timerId=setInterval(function(){
    next.click()
  },1000)
  // 4.鼠標(biāo)經(jīng)過(guò)大盒子,停止定時(shí)器
  const slider=document.querySelector('.slider')
  //注冊(cè)事件
  slider.addEventListener('mouseenter', function(){
    //停止定時(shí)器
    clearInterval(timerId)
  })
  // / 4.鼠標(biāo)經(jīng)過(guò)大盒子,開(kāi)啟定時(shí)器
  //注冊(cè)事件
  slider.addEventListener('mouseleave', function(){
    //停止定時(shí)器
    clearInterval(timerId)
   timerId = setInterval(function(){
    next.click()
  },1000)
  })
  </script>
</body>

</html>

js實(shí)現(xiàn)輪播圖效果,javascript,html,css文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-808858.html

到了這里,關(guān)于使用JS來(lái)實(shí)現(xiàn)輪播圖的效果的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web前端【3】JS基礎(chǔ)-輪播圖【JavaScript、定時(shí)器、鼠標(biāo)動(dòng)作、自動(dòng)輪播、增加和減少li列表】

    web前端【3】JS基礎(chǔ)-輪播圖【JavaScript、定時(shí)器、鼠標(biāo)動(dòng)作、自動(dòng)輪播、增加和減少li列表】

    一、實(shí)驗(yàn)題目: 輪播圖 二、實(shí)驗(yàn)內(nèi)容簡(jiǎn)介 1.整體布局:圖片、左右按鈕、數(shù)字列表、添加刪除按鈕 2、左右箭頭滾動(dòng) 3、小圓點(diǎn)滾動(dòng) 4、自動(dòng)輪播 5、鼠標(biāo)動(dòng)作:指向和離開(kāi) 6、添加與刪除 三、實(shí)驗(yàn)過(guò)程 1. 需求分析 整體布局:設(shè)計(jì)一個(gè)輪播圖,中間部分為自動(dòng)輪播的圖片展示

    2024年02月04日
    瀏覽(26)
  • JS常用插件 Swiper插件 實(shí)現(xiàn)輪播圖

    JS常用插件 Swiper插件 實(shí)現(xiàn)輪播圖

    Swiper 是一款免費(fèi)以及輕量級(jí)的移動(dòng)設(shè)備觸控滑塊的js框架 中文官網(wǎng)地址: https://www.swiper.com.cn/ 點(diǎn)擊查看 Swiper演示 ,里面的功能和樣式十分豐富,根據(jù)自己的需求選擇 中文教程 中詳細(xì)介紹了如何使用Swiper API文檔 中介紹了各個(gè)模塊以及參數(shù)的詳細(xì)信息,遇到不明白的參數(shù)可以

    2024年02月01日
    瀏覽(86)
  • HTML+CSS+JavaScript:輪播圖的自動(dòng)播放、手動(dòng)播放、鼠標(biāo)懸停暫停播放

    HTML+CSS+JavaScript:輪播圖的自動(dòng)播放、手動(dòng)播放、鼠標(biāo)懸停暫停播放

    昨天我們做了輪播圖的自動(dòng)播放,即每隔一秒自動(dòng)切換一次 今天我們?cè)黾觾蓚€(gè)需求: 1、鼠標(biāo)點(diǎn)擊向右按鈕,輪播圖往后切換一次;鼠標(biāo)點(diǎn)擊向左按鈕,輪播圖往前切換一次 2、鼠標(biāo)懸停在輪播圖區(qū)域中時(shí),輪播圖暫停播放 ? 以下是缺失JS部分的代碼,感興趣的小伙伴可以先

    2024年02月14日
    瀏覽(26)
  • 【Android】使用ViewPager2實(shí)現(xiàn)輪播圖效果,手動(dòng)/自動(dòng)輪播圖

    【Android】使用ViewPager2實(shí)現(xiàn)輪播圖效果,手動(dòng)/自動(dòng)輪播圖

    這里使用Gilde進(jìn)行加載圖片:Glide 使用Gilde可以加載網(wǎng)絡(luò)圖片還可以提高圖片加載性能。 接下來(lái)新建一個(gè)子布局item_image,加載viewPage2的子布局。 ViewPage2就是使用recyclerView實(shí)現(xiàn)的,所以這里使用方法其實(shí)類(lèi)似。 這里直接繼承RecyclerView.Adapter即可,代碼很簡(jiǎn)單不必多說(shuō)。 創(chuàng)建一個(gè)

    2024年02月03日
    瀏覽(32)
  • 基于html+js實(shí)現(xiàn)輪播圖(自動(dòng)輪播、左右按鈕、小圓點(diǎn)點(diǎn)擊及切換圖片)

    基于html+js實(shí)現(xiàn)輪播圖(自動(dòng)輪播、左右按鈕、小圓點(diǎn)點(diǎn)擊及切換圖片)

    使用html和js實(shí)現(xiàn)的一個(gè)簡(jiǎn)單小練習(xí)輪播圖。大概功能主要是: 1、使用時(shí)間函數(shù)自動(dòng)切換圖片; 2、在圖片及按鈕及小圓點(diǎn)的父節(jié)點(diǎn)身上綁定事件代理,添加mouseenter及mouseleave事件類(lèi)型,讓鼠標(biāo)移入,圖片暫停,移出,圖片恢復(fù)輪播; 3、在按鈕的父節(jié)點(diǎn)身上綁定事件代理,事

    2024年02月11日
    瀏覽(19)
  • 微信小程序-輪播圖的實(shí)現(xiàn)

    微信小程序-輪播圖的實(shí)現(xiàn)

    實(shí)現(xiàn)如圖所示輪播圖,具體編寫(xiě)步驟及原代碼請(qǐng)見(jiàn)下方 編寫(xiě) index.wxml 編寫(xiě)index.wxss 編寫(xiě) index.js

    2024年02月07日
    瀏覽(29)
  • vue中swiper輪播圖的使用

    說(shuō)明:導(dǎo)入相應(yīng)js引css import \\\"Swiper\\\" from \\\"swiper\\\" import \\\"swiper/css/swiper.css\\\"; import \\\"swiper/js/swiper\\\"; 說(shuō)明:必要的結(jié)構(gòu)使用;直接封裝成一個(gè)組件? 說(shuō)明:(頁(yè)面當(dāng)中務(wù)必要有結(jié)構(gòu));注釋已經(jīng)寫(xiě)入代碼。 第一:可以解決獲取數(shù)據(jù)在Swiper實(shí)例之前;第二:可以解決v-for遍歷完后在Swiper之

    2024年02月14日
    瀏覽(27)
  • Html+CSS+JS輪播圖:手動(dòng)輪播,自動(dòng)輪播
  • JS輪播圖,鼠標(biāo)放上暫停,自動(dòng)播放

    JS輪播圖,鼠標(biāo)放上暫停,自動(dòng)播放

    1、圖片能夠自動(dòng)輪播, 2、鼠標(biāo)移入,輪播停止;移出繼續(xù)輪播; 知識(shí)點(diǎn):1、定時(shí)器:setInterval(); 2、鼠標(biāo)移入事件:onmouseenter/onmouseover; 鼠標(biāo)移出事件:onmouseleave/onmouseout; 難點(diǎn):點(diǎn)擊第一張圖片,我們想要的效果是鼠標(biāo)移出后,圖片輪播到第二張圖片,到事實(shí)是輪播到

    2024年02月12日
    瀏覽(16)
  • 網(wǎng)頁(yè)輪播圖制作(html+css+js)

    網(wǎng)頁(yè)輪播圖制作(html+css+js)

    ? ? ? ? 目的:用于自己做記錄,記錄制作的過(guò)程以及遇到的一些問(wèn)題。內(nèi)容參考來(lái)自b站的up主:黑馬前端 的pink老師JavaScript基礎(chǔ)語(yǔ)法課程。 (1)當(dāng)鼠標(biāo)經(jīng)過(guò)輪播圖,左右兩邊的按鈕出現(xiàn),離開(kāi)則隱藏按鈕; (2)點(diǎn)擊左側(cè)按鈕,圖片向右播放一張,以此類(lèi)推,右側(cè)同理;

    2024年02月08日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包