Vue3项目关于轮播图的封装应该怎么封装才是最简单的呢

这篇具有很好参考价值的文章主要介绍了Vue3项目关于轮播图的封装应该怎么封装才是最简单的呢。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Vue3中,可以使用组合API和ref来封装一个简单的轮播图组件。以下是一个基本的封装示例:

<template>
  <div class="carousel">
    <div v-for="item in items" :key="item.id" :style="{ backgroundImage: `url(${item.imageUrl})` }" :class="{ active: item.id === currentIndex }"></div>
  </div>
</template>

<script>
import { ref, onMounted, onUnmounted } from 'vue'

export default {
  props: {
    dataList: {
      type: Array,
      default: () => []
    },
    interval: {
      type: Number,
      default: 3000
    }
  },
  setup(props) {
    const currentIndex = ref(0)
    let timer = null

    const items = props.dataList.map((item, index) => ({
      ...item,
      id: index
    }))

    const stop = () => {
      clearInterval(timer)
      timer = null
    }

    const start = () => {
      timer = setInterval(() => {
        currentIndex.value = (currentIndex.value + 1) % items.length
      }, props.interval)
    }

    onMounted(() => {
      start()
    })

    onUnmounted(() => {
      stop()
    })

    return {
      items,
      currentIndex
    }
  }
}
</script>

<style>
.carousel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.carousel > div {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.carousel > div.active {
  opacity: 1;
}
</style>

在模板中,使用v-for来遍历数据列表,并根据currentIndex来设置当前展示的轮播图。

在setup中,使用ref来定义currentIndex和timer变量。在onMounted和onUnmounted钩子中,分别启动和停止轮播循环。

最后在样式中,定义基本的轮播图样式。文章来源地址https://www.toymoban.com/news/detail-731059.html

到了这里,关于Vue3项目关于轮播图的封装应该怎么封装才是最简单的呢的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3 实现门户网站页面鼠标滚轮控制页面上下滚动---类似轮播图

    案例参考:首页_CNESA 储能研究平台 //监听鼠标滚动事件  window.addEventListener(\\\'mousewheel\\\', debounce(methodB,300), true)||window.addEventListener(\\\"DOMMouseScroll\\\",debounce(methodB,300),false) const debounce = (func, wait) ={         let timeout;         return  function() {             let context = this;            

    2024年02月12日
    浏览(36)
  • 微信小程序-轮播图的实现

    实现如图所示轮播图,具体编写步骤及原代码请见下方 编写 index.wxml 编写index.wxss 编写 index.js

    2024年02月07日
    浏览(37)
  • 使用JS来实现轮播图的效果

    最好今天分享一个使用JS制作的轮播图效果 个人名片:  😊 作者简介:一名大一在校生,web前端开发专业  🤡  个人主页:几何小超  🐼 座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。  🎅**学习目标:  坚持每一次的学习打卡 ,学好前端 首先是HTML部分

    2024年01月20日
    浏览(32)
  • vue项目中使用vant轮播图组件(桌面端)

    vue使用vant轮播图组件(桌面端) 2.1 Visual Studio Code 1.75.0 2.2 chrome浏览器 2.3 node v18.14.0 3.1 安装环境 3.2 添加代码 3.3 结果展示 4.1 安装环境 先安装包 然后桌面端适配 4.2 添加代码 注册组件 相比于官方给的代码,有两个方面需要注意,一个是适配桌面端,还有一个就是我以为vant组

    2024年02月04日
    浏览(34)
  • JS实现轮播图的三种简单方法。

    实现思路 这可能是轮播图最简单点的实现之一,通过更改图片的src来实现该效果,首先需要将图片命名格式统一比如pic01.jpg,pic02.jpg…,再通过js使用定时器去改变img标签里面的src图片链接的名字来实现切换效果。代码如下: 实现效果 实现思路 这可能是轮播图最简单点的实现

    2024年02月03日
    浏览(34)
  • 教程6 Vue3+Element Plus el-carousel制作轮播图(后面有修改样式的方法)

    (1)引入Element开发环境 (2)自动引入Element (3)在配置文件中进行配置,本人使用的是Vit构建工具 如果使用Vite作为构建工具,配置文件为vite.config.js,配置方法如下: (4)Element Plus全局引入 main.ts中增加下面的代码: (1)运行效果 (2)Rotation.vue参考代码 (3)卡片式轮

    2024年02月06日
    浏览(35)
  • HTML+CSS+JavaScript:轮播图的自动播放、手动播放、鼠标悬停暂停播放

    昨天我们做了轮播图的自动播放,即每隔一秒自动切换一次 今天我们增加两个需求: 1、鼠标点击向右按钮,轮播图往后切换一次;鼠标点击向左按钮,轮播图往前切换一次 2、鼠标悬停在轮播图区域中时,轮播图暂停播放   以下是缺失JS部分的代码,感兴趣的小伙伴可以先

    2024年02月14日
    浏览(35)
  • 让小程序动起来-轮播图的两种方式--【浅入深出系列003】

    微信目录集链接在此: 详细解析黑马微信小程序视频–【思维导图知识范围】 难度★✰✰✰✰ 不会导入/打开小程序的看这里:参考 让别人的小程序长成自己的样子-更换window上下颜色–【浅入深出系列001】 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只

    2024年02月16日
    浏览(38)
  • 【uniapp小程序开发】—— 组件封装之【自定义轮播图】

    本文主要展示小程序端封装轮播图组件,使用的是uniapp进行的开发,主要使用的是uniapp官网提供的 swiper 组件,可以参考官方文档,查看一些相关API。 效果图一睹为快: 话不多说直接上正文一起来学习一下封装轮播图组件吧! 滑块视图容器。 一般用于左右滑动或上下滑动,比

    2023年04月08日
    浏览(26)
  • 轮播图,用vue来写一个简单的轮播图

    写的很简单,就是一个小练习,哈哈哈,下面的几张图分别是轮播图的第一张,中间图,最后一张的效果图。 使用了vue 中的属性绑定 v-bind ,v-show 以及 事件监听 v-on 指令。 思路: 1.vue实例中声明一个data属性imgArr,用于存放每张轮播图的地址, 2.同时定义一个默认起始索引in

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包