返回

用Better Scroll打造极酷炫的Vue轮播图组件!

前端

前言

我们上一篇博客用better-scroll实现了移动端纵向滚动的演示,这次我们继续利用它实现一个横向滚动——轮播图组件,让你的网页更加动感迷人。

效果预览

这是我们用better-scroll实现的轮播图效果演示:
[轮播图效果预览]

功能特性

这个轮播图组件实现了以下功能:

  • 基于异步请求到的图片数据进行轮播图展示。
  • 可控制是否自动播放,是否循环播放,以及自动播放间隔。
  • 提示当前播放页。

实现步骤

接下来我们一步步带你实现这个轮播图组件:

  1. 引入better-scroll
import BScroll from 'better-scroll'
  1. 初始化better-scroll实例
const scroll = new BScroll('.container', {
  scrollX: true,
  click: true
})
  1. 异步请求图片数据
async function getImages() {
  const res = await fetch('https://picsum.photos/v2/list?page=1&limit=10')
  const data = await res.json()
  return data
}
  1. 渲染轮播图
const images = await getImages()

images.forEach((image, index) => {
  const div = document.createElement('div')
  div.classList.add('image-item')
  div.style.backgroundImage = `url(${image.download_url})`

  scroll.scroller.appendChild(div)
})
  1. 控制自动播放
let autoplay = false
let timer

function startAutoplay() {
  autoplay = true
  timer = setInterval(() => {
    scroll.next()
  }, 2000)
}

function stopAutoplay() {
  autoplay = false
  clearInterval(timer)
}

总结

通过以上步骤,我们成功利用better-scroll实现了Vue轮播图组件,让你的网页更加动感迷人。快去试试吧!