当前位置: 首页 > news >正文

【vue项目中如何实现一段文字跑马灯效果】

在Vue项目中实现一段文字跑马灯效果,可以通过多种方式实现,以下是几种常见的方法:

方法一:使用CSS动画和Vue数据绑定

这种方法通过CSS动画实现文字的滚动效果,并结合Vue的数据绑定动态更新文本内容。

步骤:
  1. HTML部分
   <template><div class="marquee"><span ref="marqueeText">{{ marqueeText }}</span></div></template>
  1. CSS部分
   .marquee {overflow: hidden;white-space: nowrap;position: relative;}.marquee span {display: inline-block;animation: marquee 10s linear infinite;}@keyframes marquee {0% { transform: translateX(0); }100% { transform: translateX(-100%); }}
  1. Vue部分
   export default {data() {return {marqueeText: '这是一个跑马灯效果'};},mounted() {this.updateText();},methods: {updateText() {const span = this.$refs.marqueeText;const width = span.offsetWidth;const duration = 10000;const interval = duration / (span.textContent.length * 10);setInterval(() => {span.style.transform = `translateX(-${width}px)`;setTimeout(() => {span.style.transform = `translateX(0)`;}, interval);}, interval);}}};

方法二:使用Vue组件封装

将跑马灯效果封装成一个可复用的Vue组件,方便在项目中多次使用。

步骤:
  1. 组件模板
   <template><div class="marquee"><span ref="marqueeText">{{ text }}</span></div></template>
  1. 组件样式
   .marquee {overflow: hidden;white-space: nowrap;position: relative;}.marquee span {display: inline-block;animation: marquee 10s linear infinite;}@keyframes marquee {0% { transform: translateX(0); }100% { transform: translateX(-100%); }}
  1. 组件脚本
   export default {props: {text: {type: String,default: ''}},mounted() {this.updateText();},methods: {updateText() {const span = this.$refs.marqueeText;const width = span.offsetWidth;const duration = 10000;const interval = duration / (span.textContent.length * 10);setInterval(() => {span.style.transform = `translateX(-${width}px)`;setTimeout(() => {span.style.transform = `translateX(0)`;}, interval);}, interval);}}};

方法三:使用Vue指令和定时器

通过Vue指令动态调整文本内容和动画效果。

步骤:
  1. HTML部分
   <template><div :class="marqueeClass" :style="marqueeStyle"><span>{{ marqueeText }}</span></div></template>
  1. Vue部分
   export default {data() {return {marqueeText: '这是一个跑马灯效果',marqueeClass: 'marquee',marqueeStyle: {}};},mounted() {this.calculateDuration();this.startMarquee();},methods: {calculateDuration() {const span = this.$refs.marqueeText;const textLength = span.textContent.length;const duration = Math.min(10000, textLength * 10);this.marqueeStyle.animationDuration = `${duration}s`;},startMarquee() {const marquee = this.$refs.marqueeText;setTimeout(() => {marquee.style.animationPlayState = 'running';}, 100);}}};

方法四:使用translateX和定时器

通过translateX效果和定时器实现文字的水平滚动。

步骤:
  1. HTML部分
   <template><div class="marquee"><span ref="marqueeText">{{ marqueeText }}</span></div></template>
  1. CSS部分
   .marquee {overflow: hidden;white-space: nowrap;position: relative;}.marquee span {display: inline-block;transition: transform 1s ease-in-out;}
  1. Vue部分
   export default {data() {return {marqueeText: '这是一个跑马灯效果'};},mounted() {this.startMarquee();},methods: {startMarquee() {const span = this.$refs.marqueeText;let position = 0;const interval = 1000;setInterval(() => {position -= 10; // 每次移动10pxif (position <= -span.offsetWidth) {position = 0;}span.style.transform = `translateX(${position}px)`;}, interval);}}};

总结

以上方法各有优缺点,可以根据实际需求选择适合的方式。例如,第一种方法适合简单的跑马灯效果,第二种方法适合需要封装成组件的情况,第三种方法适合需要动态调整动画效果的场景,第四种方法则适合需要精确控制滚动速度的场景。希望这些方法能帮助你在Vue项目中实现文字跑马灯效果。

相关文章:

【vue项目中如何实现一段文字跑马灯效果】

在Vue项目中实现一段文字跑马灯效果&#xff0c;可以通过多种方式实现&#xff0c;以下是几种常见的方法&#xff1a; 方法一&#xff1a;使用CSS动画和Vue数据绑定 这种方法通过CSS动画实现文字的滚动效果&#xff0c;并结合Vue的数据绑定动态更新文本内容。 步骤&#xff…...

DeepSeek 细节之 MLA (Multi-head Latent Attention)

DeepSeek 系统模型的基本架构仍然基于Transformer框架&#xff0c;为了实现高效推理和经济高效的训练&#xff0c;DeepSeek 还采用了MLA&#xff08;多头潜在注意力)。 MHA&#xff08;多头注意力&#xff09;通过多个注意力头并行工作捕捉序列特征&#xff0c;但面临高计算成本…...

Python爬虫具体是如何解析商品信息的?

在使用Python爬虫解析亚马逊商品信息时&#xff0c;通常会结合requests库和BeautifulSoup库来实现。requests用于发送HTTP请求并获取网页内容&#xff0c;而BeautifulSoup则用于解析HTML页面并提取所需数据。以下是具体的解析过程&#xff0c;以按关键字搜索亚马逊商品为例。 …...

lerobot调试记录

这里写自定义目录标题 libtiff.so undefined symbol libtiff.so undefined symbol anaconda3/envs/lerobot3/lib/python3.10/site-packages/../.././libtiff.so.6: undefined symbol: jpeg12_write_raw_data, version LIBJPEG_8.01.安装库 conda install -c conda-forge jpeg …...

【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用

在日常办公和学习中&#xff0c;将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件&#xff0c;都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...

Jenkins 配置 Credentials 凭证

Jenkins 配置 Credentials 凭证 一、创建凭证 Dashboard -> Manage Jenkins -> Manage Credentials 在 Domain 列随便点击一个 (global) 二、添加 凭证 点击左侧 Add Credentials 四、填写凭证 Kind&#xff1a;凭证类型 Username with password&#xff1a; 配置 用…...

Datawhale Ollama教程笔记5

Dify 接入 Ollama 部署的本地模型 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。 快速接入 下载 Ollama 访问 Ollama 安装与配置&#xff0c;查看 Ollama 本地部署教程。 运行 Ollama 并与 Llama 聊天 ollama run llama3.1Copy to clipboardErrorCopied …...

小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音问题解决

背景 22年买的小爱音箱增强版play&#xff0c;小爱音箱连接电脑外放之后&#xff0c;浏览器网页视频暂停播放后&#xff0c;音箱整体没声音&#xff08;一边打着游戏&#xff0c;一边听歌&#xff0c;一边放视频&#xff0c;视频一暂停&#xff0c;什么声音都没了&#xff0c;…...

go设置镜像代理

前言 在 Go 开发中&#xff0c;如果直接从官方源&#xff08;https://proxy.golang.org&#xff09;下载依赖包速度较慢&#xff0c;可以通过设置 镜像代理 来加速依赖包的下载。以下是增加 Go 镜像代理的详细方法&#xff1a; 一、设置 Go 镜像代理 1. 使用环境变量设置代理…...

Python爬虫系列教程之第十二篇:爬虫异常处理与日志记录

大家好&#xff0c;欢迎继续关注本系列爬虫教程&#xff01;在实际的爬虫项目中&#xff0c;网络请求可能会因为各种原因失败&#xff0c;如连接超时、目标服务器拒绝访问、解析错误等。此外&#xff0c;大规模爬虫任务运行过程中&#xff0c;各种异常情况层出不穷&#xff0c;…...

将Google文档导入WordPress:简单实用的几种方法

Google文档是内容创作者非常实用的写作工具。它支持在线编辑、多人协作&#xff0c;并能够自动保存内容。但当我们想把Google文档中的内容导入WordPress网站时&#xff0c;可能会遇到一些小麻烦&#xff0c;比如格式错乱、图片丢失等问题。本文将为大家介绍几种简单实用的方法&…...

大白话实战Gateway

网关功能 网关在分布式系统中起了什么作用?参考下图: 前端想要访问业务访问,就需要知道各个访问的地址,而业务集群服务有很多,前端需要记录非常多的服务器地址,这种情况下,我们需要对整个业务集群做一个整体屏蔽,这个时候就引入Gateway网关,它就是所有服务的请求入…...

深入学习解析:183页可编辑PPT华为市场营销MPR+LTC流程规划方案

华为终端正面临销售模式转型的关键时刻&#xff0c;旨在通过构建MPRLTC项目&#xff0c;以规避对运营商定制的过度依赖&#xff0c;并探索新的增长路径。项目核心在于建设一套全新的销售流程与IT系统&#xff0c;支撑双品牌及自有品牌的战略发展。 项目总体方案聚焦于四大关键议…...

【微中子代理踩坑-前端node-sass安装失败】

微中子代理踩坑-前端node-sass安装失败-windows 1.npm版本2.python2.73.安装Visual Studio 1.npm版本 当前使用node版本13.12.0 2.python2.7 安装python2.7.9并配置环境变量 3.安装Visual Studio 安装Visual Studio 我是直接勾选了3个windows的sdk,然后就好了 最后 npm in…...

使用open-webui+deepseek构建本地AI知识库

序 本文主要研究一下如何使用OpenWebUIdeepseek构建本地AI知识库 步骤 拉取open-webui镜像 docker pull ghcr.io/open-webui/open-webui:maindocker启动 docker run -d -p 3000:8080 \ -e OLLAMA_BASE_URLhttp://host.docker.internal:11434 \ ghcr.io/open-webui/open-we…...

CSS盒模

CSS盒模型就像一个快递包裹&#xff0c;网页上的每个元素都可以看成是这样一个包裹&#xff0c;它主要由以下几个部分组成&#xff1a; 内容&#xff08;content&#xff09;&#xff1a;就像包裹里真正装的东西&#xff0c;比如文字、图片等。在CSS里&#xff0c;可用width&a…...

【开源向量数据库】Milvus简介

Milvus 是一个开源、高性能、可扩展的向量数据库&#xff0c;专门用于存储和检索高维向量数据。它支持近似最近邻搜索&#xff08;ANN&#xff09;&#xff0c;适用于图像检索、自然语言处理&#xff08;NLP&#xff09;、推荐系统、异常检测等 AI 应用场景。 官网&#xff1a…...

机器学习笔记——常用损失函数

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记介绍机器学习中常见的损失函数和代价函数&#xff0c;各函数的使用场景。 热门专栏 机器学习 机器学习笔记合集 深度学习 深度学习笔记合集 文章目录 热门…...

Nginx--日志(介绍、配置、日志轮转)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、Nginx日志介绍 nginx 有一个非常灵活的日志记录模式&#xff0c;每个级别的配置可以有各自独立的访问日志, 所需日志模块 ngx_http_log_module 的…...

2025 vue3面试题汇总,通俗易懂

一、基础概念与核心特性 1. Vue3 相比 Vue2 的改进&#xff08;通俗版&#xff09; 问题&#xff1a;Vue3 比 Vue2 好在哪&#xff1f; 答案&#xff1a; 更快&#xff1a; Proxy 代理&#xff1a;Vue2 的响应式像“逐个监听保险箱”&#xff08;每个属性单独监听&#xff0…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...