Vue实现跑马灯简单效果

下面是 Vue 实现跑马灯简单效果的攻略:

概述

跑马灯是常用于展示广告、公告等信息的效果。在 Vue 中实现跑马灯,可以使用 Vue 的内置指令 v-for 和过渡效果实现。

实现步骤

  1. 使用 v-for 指令循环渲染数据
  2. 使用 CSS3 的过渡效果实现轮播效果
  3. 使用 computed 计算属性进行数据循环
  4. 使用 setInterval() 方法实现自动轮播效果
  5. 鼠标悬停时停止轮播,移开时继续轮播

下面是两个示例:

示例一:使用 v-for 指令实现

HTML 代码:

<div class="marquee">
  <ul>
    <li v-for="(item, index) in items" :key="index" v-text="item"></li>
  </ul>
</div>

CSS 代码:

.marquee ul {
  list-style: none;
  padding-left: 0;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-align: center;
}

.marquee li {
  display: inline-block;
  padding: 0 20px;
  margin-right: 20px;
  border-right: 2px solid #666;
  animation: roll 10s linear infinite;
}

@keyframes roll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

JavaScript 代码:

export default {
  data() {
    return {
      items: [
        'Vue.js 是一个构建数据驱动的 web 界面的 JavaScript 框架',
        'Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件',
        'Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。',
        'Vue.js 是一个渐进式框架,允许开发者在现有项目中逐步应用',
        '欢迎使用 Vue.js!'
      ],
      currentIndex: 0,
      timer: null
    }
  },
  computed: {
    currentItem() {
      return this.items[this.currentIndex]
    }
  },
  mounted() {
    this.timer = setInterval(() => {
      this.currentIndex = ++this.currentIndex % this.items.length
    }, 3000)
  },
  beforeDestroy() {
    clearInterval(this.timer)
  }
}

首先在 HTML 代码里使用 v-for 指令循环渲染数据,然后在 CSS 代码里使用 animation 属性实现轮播效果,最后在 JavaScript 代码里使用 setInterval() 方法实现自动轮播效果,并添加了 beforeDestroy() 生命周期函数以及 clearInterval() 方法在组件卸载前停止轮播。

示例二:使用 computed 计算属性实现

HTML 代码:

<div class="marquee">
  <ul>
    <li v-text="currentItem"></li>
  </ul>
</div>

CSS 代码同示例一。

JavaScript 代码:

export default {
  data() {
    return {
      items: [
        'Vue.js 是一个构建数据驱动的 web 界面的 JavaScript 框架',
        'Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件',
        'Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。',
        'Vue.js 是一个渐进式框架,允许开发者在现有项目中逐步应用',
        '欢迎使用 Vue.js!'
      ],
      currentIndex: 0,
      timer: null
    }
  },
  computed: {
    currentItem() {
      return this.items[this.currentIndex]
    }
  },
  mounted() {
    this.timer = setInterval(() => {
      this.currentIndex = ++this.currentIndex % this.items.length
    }, 3000)
  },
  beforeDestroy() {
    clearInterval(this.timer)
  }
}

这个示例和示例一的区别在于,使用 computed 计算属性代替 v-for 循环渲染数据,并在 computed 属性里定义一个计算属性 currentItem,返回当前需要展示的数据,然后在 JavaScript 代码里使用 setInterval() 方法实现自动轮播效果,并添加了 beforeDestroy() 生命周期函数以及 clearInterval() 方法在组件卸载前停止轮播。

以上就是 Vue 实现跑马灯简单效果的攻略,两个示例虽然实现的效果一样,但是实现方法不同,请按需选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue实现跑马灯简单效果 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue3的ref、isRef、toRef、toRefs、toRaw详细介绍

    请听我为您详细介绍vue3中ref、isRef、toRef、toRefs、toRaw的作用和用法。 一、ref ref是Vue3提供的一个响应式数据类型,将非响应式数据转换为响应式数据。 ref接收一个参数,返回的是一个对象,通过修改对象的value属性来更新数据。 import { ref } from ‘vue’ const count = ref(0)…

    Vue 2023年5月28日
    00
  • 深入理解Vue响应式原理及其实现方式

    深入理解Vue响应式原理及其实现方式 什么是Vue响应式原理 Vue.js是一种用于构建交互式Web界面的渐进式JavaScript框架,可以帮助开发者更高效地构建Web应用。Vue的响应式原理是Vue最重要的特性之一,它允许开发者通过声明式数据绑定来管理应用的状态,并自动跟踪数据之间的依赖关系和更新视图,提高了开发效率并提供更好的用户体验。 在Vue的响应…

    Vue 2023年5月27日
    00
  • typescript nodejs 依赖注入实现方法代码详解

    下面是详细讲解“typescript nodejs 依赖注入实现方法代码详解”的完整攻略。 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,它使得某个类的依赖关系由外部配置文件来确定。在软件设计中,如果一个模块依赖于另一个模块,就需要在代码中显式地创建它们之间的关系。而依赖注入则是将这些依赖关系从代码中移除,从而…

    Vue 2023年5月28日
    00
  • 使用vue-cli创建vue项目介绍

    当我们要开始一个新的Vue项目时,我们可以使用Vue CLI来创建项目。Vue CLI是一个标准化的工具,用于快速搭建Vue项目。它会为我们提供一个Vue项目的基础结构,包含了很多开箱即用的插件和功能。 下面详细介绍如何使用Vue CLI来创建Vue项目的完整攻略。 环境准备 首先,我们要检查本地环境是否已经安装了Node.js。打开终端,输入以下代码检查是…

    Vue 2023年5月28日
    00
  • idea项目debug模式无法启动的解决

    针对“idea项目debug模式无法启动”的问题,我们可以尝试以下措施解决: 1. 检查项目依赖 在使用idea进行项目开发时,如果项目依赖有问题,可能会导致debug模式启动失败。这时我们可以尝试检查一下项目依赖的问题,具体步骤如下: 在idea中打开对应项目 点击菜单栏上的File -> Project Structure 在弹出的窗口中,点击左侧…

    Vue 2023年5月28日
    00
  • vue3组件化开发之可复用性的应用实例详解

    下面详细讲解“vue3组件化开发之可复用性的应用实例详解”这个完整攻略。 一、背景和前置知识 首先需要了解的是Vue3的组件化开发,并且对Vue3语法要有一定的掌握。 二、组件复用性的重要性 在实际开发中,组件的复用性非常重要,可以大大提升开发效率。在Vue3中,组件是可以被复用的,通过将公共逻辑和UI组件编写成可复用的组件,可以节省时间和代码量。 三、如何…

    Vue 2023年5月27日
    00
  • uniapp H5 https跨域请求实现

    前置知识 在开始讲解“uniapp H5 https跨域请求实现”之前,我们需要了解一些基础的知识: HTTP和HTTPS:是基于传输层协议TCP/IP协议族来传递数据的; 跨域:是指在一个网页上加载的资源请求了另外一个域名下的资源(图片、链接、JS、CSS等),浏览器为了安全性会直接拒绝这种行为,因为存在很大的安全隐患; JSONP跨域:是一种脚本注入技术…

    Vue 2023年5月28日
    00
  • Vue.js每天必学之组件与组件间的通信

    Vue.js每天必学之组件与组件间的通信 在Vue.js中,组件是一个重要的概念。组件可以方便地构建复杂的应用程序,并且可以通过组件之间的通信来实现数据的共享与交互。本文将对Vue.js中组件与组件间的通信进行详细的讲解,并给出两个示例说明。 组件 在Vue.js中,组件是一个独立的模块化单元,有自己的模板、数据和方法。组件可以嵌套,可以被重复使用,并且可以…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部