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

文字滚动通知功能实现 vue 组件

工作中有使用到文字滚动功能,做个demo记录,方便下次复制,分享给大家。

点击 预览
https://works-ipo66c6f46dc36334645e6fc471-5173.node01.inscode.run/

<script setup lang="ts">
import { ref, nextTick } from 'vue';
const noticeList = ref([]);const getNoticeList = async () => {const list = ['测试文字','11111111111111111111111111111111111111111111111111111111','哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈',];noticeList.value = list;nextTick(() => {const content = document.querySelector('.scroll-content');const contentOffsetWidth = content.offsetWidth;// 根据内容长度计算动画持续时间// 假设每秒滚动100px width 越大,速度越快const width = 100;const duration = Math.floor(contentOffsetWidth / width);content.style.animationDuration = `${duration}s`;});
};getNoticeList();
</script><template><div class="scroll-container"><div class="scroll-content"><div v-for="(item, index) in noticeList" :key="item + index" class="item">{{ item }}</div></div></div>
</template><style scoped>
.scroll-container {display: flex;align-items: center;background: red;width: 800px;overflow-x: hidden; /* 启用水平滚动 */overflow-y: hidden; /* 隐藏垂直滚动条 */white-space: nowrap; /* 防止内容换行 */position: relative;z-index: 99;
}.scroll-content {display: inline-block; /* 让内容作为内联块级元素,以便宽度自动调整 */padding: 10px; /* 可选:添加内边距以调整内容位置 */will-change: auto;animation: scroll-left 10s linear infinite; /* 动画设置 */
}.item {display: inline-block; /* 让每个条目水平排列 */text-align: left;padding-left: 800px;color: #fff;
}@keyframes scroll-left {from {transform: translateX(0);}to {transform: translateX(-100%); /* 根据内容总长度调整 */}
}
</style>

http://www.mrgr.cn/news/6194.html

相关文章:

  • 反射型XSS
  • 【微服务】Nacos配置中心和客户端数据同步模式
  • 【Hot100】LeetCode—94. 二叉树的中序遍历
  • 什么是Redis大key问题?如何解决?
  • mpv播放器在rk3399上配置硬解码
  • 【Windows】深度学习环境部署
  • 【Linux操作系统】进程间通信(1)
  • 深入理解TCP选择性确认(SACK):优化网络传输的机制
  • 6款大学生电脑里的必装软件,装进电脑慢慢用
  • SQLite 插入一行并返回主键
  • 代码随想录算法训练营day52:图03:101. 孤岛的总面积;102. 沉没孤岛;103. 水流问题
  • 【qt】多线程
  • 零基础学习Redis(3) -- Redis常用命令
  • 【达梦数据库】锁超时的处理方法-错误码[-6407]
  • EmguCV学习笔记 VB.Net 第5章 图像变换
  • 通过Qt Creator Plugin开发Qt Creator插件-【金丹篇】
  • 设计模式 -- 概述
  • FPGA开发——DS18B20的使用(理论)
  • Mybatis(面试篇)
  • 软件测试最全面试题及答案整理(2024最新版)