iT邦幫忙

0

使用Swiper輪播插件做一個跑馬燈(marquee)

  • 分享至 

  • xImage
  •  

使用Swiper這個輪播插件可以使我們用少少的程式碼實踐輪播效果,它不只可以用來做照片輪播、Banner輪播,還可以做跑馬燈效果。今天我們來做個跑馬燈吧!

首先我們在官網這一頁找到CDN(你也可以用NPM安裝),分別把CSS與Javascript CDN 貼在HTML的<head>中與`前。
CDN:

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css"
/>

<script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script>

然後這是html的程式碼結構,最外層是.swiper容器,再裡面有.swiper-wrapper包覆每張slide用的,
最裡面是投影片.swiper-slide,裡面寫一些文字。

  <!-- Slider main container -->
<div class="swiper ">
  <!-- Additional required wrapper -->
  <div class="swiper-wrapper">
    <!-- Slides -->
    <div class="swiper-slide">今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。</div>
    <div class="swiper-slide">今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。</div>
    <div class="swiper-slide">今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。天天氣很好,我想要出去玩。今天天氣很好,我想要出去玩。</div>
  </div>
</div>

css 樣式 我寫這樣:

//黑底白字
.swiper-slide{
  width:auto;//讓每個投影片寬度auto,使文字不換行,保持單行
  font-size:24px;
  background-color: #000;
  color:white;
}

javascript 長這樣:

//初始化Swiper物件,第一個參數對照你swiper的class
const swiper = new Swiper(".swiper", {
  slidesPerView: "auto", //一個view的投影片數量,預設為1。如果沒寫這個,若投影片文字過長就會換行
  allowTouchMove: false, //不讓使用者觸碰移動slide
  autoplay: {
    delay: 0, //自動播放不延遲
    disableOnInteraction: false //不因使用者觸碰而停止自動播放
  },
  loop: true, //反覆循環
  speed: 8000 //投影片之間的過渡持續時間(以毫秒為單位),數字愈大跑愈慢
});

寫到這裡會看到跑馬燈開始跑了,但速度忽快忽慢。
這時可以在CSS中加這個就可以都一樣快:

.swiper-wrapper {
    transition-timing-function: linear;//使動畫變換的速度一樣快
  }

最後長這樣,這是截圖
https://ithelp.ithome.com.tw/upload/images/20230925/20135414xM4c55TNQ3.png
transition-timing-function
讓我想到啤酒的廣告下面也會有告誡酒後不開車的跑馬燈。

完整程式碼在此CodePen

官方API與參數


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言