Vue实现公告循环横向播报组件

一、代码组件

        注意:当公告字数很少时会固定不动,当字数达到最大宽度时,则会循环播报

<template><div class="TopCard"><!-- 小喇叭 --><div style="width: 70px"><notify style="width: 20px;height: 20px;margin-top: 5px"/></div><!-- 滚动文字外层div,文字能展示的区域--><div class="noticeBox" :style="'width:'+noticeWidth+'px;height:20px;position:relative;overflow:hidden;display:inline-block;vertical-align:middle;'"><!-- 滚动div,marginLeft变化--><div :style="'margin-left:'+marginLeft+'px;white-space:nowrap'"><span class="showNotice">{{showNotice}}</span><!-- 不会展示,用来测量第二条与第一条重合时的长度 --><span class="notice">{{notice}}</span></div></div></div>
</template><script>import notify from '../assets/icon/notify.svg'export default {name: 'Home',components:{notify},props:{noticeData:{type:Array,default:[]}},data () {return {// 适应屏幕分辨率noticeWidth: window.screen.width - 150,// 公告展示(过长时会重复两遍)showNotice: '',// 用于公告过长时,获取重复两遍中第一遍的长度notice: '',// 公告初始位置marginLeft: 150}},mounted () {this.noticeData.forEach((val, index) => {if (index === 0) {this.showNotice += '【' + (index + 1) + '】' + val} else {this.showNotice += '\xa0\xa0\xa0\xa0\xa0\xa0【' + (index + 1) + '】' + val}})// 公告上面先赋值,再获取宽度setTimeout(() => {// 公告div长度var oneNoticeWidth = document.getElementsByClassName('showNotice')[0].offsetWidth// 公告外层div长度var noticeBoxWidth = document.getElementsByClassName('noticeBox')[0].offsetWidth// 一条公告长度太大时,才滚动if (oneNoticeWidth > noticeBoxWidth) {// 滚动公告需要将公告重复两遍进行滚动,两遍中间需要加空格this.notice = this.showNotice + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0'// 上面先赋值,再获取宽度setTimeout(() => {// 获取一遍加中间空格的长度,即左移时第二遍与第一遍完全重合时的长度var oneNoticeAddEmptyWidth = document.getElementsByClassName('notice')[0].offsetWidth// 公告内容重复两遍this.showNotice = this.notice + this.showNoticethis.timer = setInterval(() => {this.marginLeft -= 1// 第二遍与第一遍起始位置重合时(第一条已完全移到左侧隐藏),marginLeft置0,即回到第一条if (this.marginLeft === (-1) * oneNoticeAddEmptyWidth) {this.marginLeft = 0}}, 20)}, 10)} else { //公告并没有很长时不滚动this.marginLeft = 0}}, 10)},}
</script><style scoped >/* 公告card */.TopCard .el-card__body{padding:0 10px}/* 公告title */.tips{color:#606266;font-weight:bold}.TopCard{display: flex;flex-direction: row;align-items: center;}
</style>

二、使用

<template><div ><div class="headers-middle" ><Notice v-if="this.noticeData.length>0" :noticeData="noticeData"/></div></div>
</template><script>import Notice from "../Notice";export default {data() {return {noticeData: [],}},components: {Notice,},methods: {broadcastContent(){//获取后端的公告数据service.get("/users/config/notice").then(res=>{console.log(res)if (res.code===20000){if (res.message!=null){this.setNoticeData(res.message)}}})},setNoticeData(notice){if (this.noticeData!=null && this.noticeData.length!==0){this.noticeData[0] = notice}else {this.noticeData = [];this.noticeData.push(notice)}}},mounted() {this.broadcastContent();}}
</script><style scoped>.headers-middle{position: absolute;left: 300px;top: 10px;width: 45%;}
</style>

三、效果图(循环播报)

图一:

图二:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git小白进阶之路

git是最常用的版本控制工具&#xff0c;我对其进行了整理后续补充&#xff0c;这个文档欢迎大家来讨论&#xff0c;当前我的视频梳理&#xff1a; git小白进阶之路_哔哩哔哩_bilibili&#xff0c;非常希望大佬们能够批评指正&#xff0c;并多多交流。 目录 初始配置 配置账号…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(5)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述&#xff08;4&#xff09; 4.1.2 PCIe总线使用的信号 PCIe设备使用两种电源信号供电&#xff0c;分别是Vcc与Vaux&#xff0c;其额定电压为3.3V。其中Vcc为主电源&#xff0c;PCIe设备…

上位机图像处理和嵌入式模块部署(linux开发板的选择)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多图像算法是通过上位机来完成的&#xff0c;比如说工业视觉当中的halcon&#xff0c;一般都是要运行在windows平台上面&#xff0c;并且需要高性…

Fashion MNIST数据集介绍及基于Pytorch下载数据集

Fashion MNIST数据集介绍及基于Pytorch下载数据集 &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;Fashion MNIST数据集简介&#x1f333;Fashion MNIST数据集的类别说明Fashion MNIST数据集图片示例 &#x1f333;基于PyTorch下载Fashion MN…

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统&#xff0c;可能出于以下原因&#xff1a; 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足&#xff0c;直接扩区较为复杂 3、以后不再使用Ubuntu&#xff0c;清理留出空间 123无论出于哪种原因&#xff0c;我们都是要…

Python调取Excel数据类似VLOOKUP

当需要通过某一信息&#xff0c;获取表格中其他信息时&#xff0c;比如想通过学号&#xff0c;直接拉取该学生的其他表格信息 可以通过如下代码&#xff1a; import xlrd #xlrd 常用的Excel读取库file "test.xls" #文件地址&#xff0c;注意xlrd可能无法…

【Android新版本兼容】onBackPressed()方法被弃用的解决方案

提示&#xff1a;此文章仅作为本人记录日常学习使用&#xff0c;若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、使用 AndroidX API 实现预测性返回手势1.1 添加依赖1.2 启用返回手势1.3 注册OnBackPressedCallback()方法来处理返回手势 一、使用 AndroidX API 实现预测…

Vue3_基础使用_2

这节主要介绍&#xff1a;标签和组件的ref属性&#xff0c;父子组件间的传递值&#xff0c;ts的接口定义&#xff0c;vue3的生命周期 1.标签的ref属性。 1.1ref属性就是给标签打标识用的&#xff0c;相当于html的id&#xff0c;但是在vue3中用id可能会乱&#xff0c;下面是ref…

分布式事务_学习笔记

分布式事务 0.学习目标 1.分布式事务问题 1.1.本地事务 本地事务&#xff0c;也就是传统的单机事务。在传统数据库事务中&#xff0c;必须要满足四个原则&#xff1a; 1.2.分布式事务 分布式事务&#xff0c;就是指不是在单个服务或单个数据库架构下&#xff0c;产生的事务…

杂题——试题 算法训练 区间最大和

分析&#xff1a; 如果使用两个for循环遍历所有情况&#xff0c;运行会超时解决运行超时的关键点在于&#xff1a;及时停止累加&#xff0c;丢弃当前的子序列 比如【1&#xff0c;-2&#xff0c;3&#xff0c;10】从第一个数字开始的子序列的和小于从第三个数字开始的子序列的和…

PSQL常用操作

目录 前言 准备工作 添加postgres用户 初始化数据库 启动服务 创建数据库 psql连接数据库 常规操作 数据库 schema相关 插件 其他 前言 老折腾&#xff0c;还是记录点啥吧...... 基于本地PG数据库(打包为绿色版本了)&#xff0c;实操记录&#xff0c;版本pgsql12…

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式

关于华为应用市场上架过程中出现的【您的应用在运行时&#xff0c;未同步告知权限申请的使用目的&#xff0c;向用户索取&#xff08;存储、拍照&#xff09;等权限&#xff0c;不符合华为应用市场审核标准。】 使用方式&#xff1a; 1、引入 import permision from "/m…

【Jenkins】pipeline基本使用

目录 一、pipeline 二、创建pipeline项目 1、安装pipeline插件 2、创建pipeline项目 三、pipeline语法 1、pipeline组成 2、agent&#xff1a;指定流水线的执行位置&#xff0c;流水线中每个阶段都必须在某个地方执行 3、stage&#xff1a;阶段&#xff0c;代表流水线的…

编程实例分享,眼镜店电脑系统软件,配件验光管理顾客信息记录查询系统软件教程

编程实例分享&#xff0c;眼镜店电脑系统软件&#xff0c;配件验光管理顾客信息记录查询系统软件教程 一、前言 以下教程以 佳易王眼镜店顾客档案管理系统软件V16.0为例说明 如上图&#xff0c; 点击顾客档案&#xff0c;在这里可以对顾客档案信息记录保存查询&#xff0c;…

Linux(二)

远程登录 Xshell6 Xshell 是一个强大的安全终端模拟软件&#xff0c;它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议&#xff1b; Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器&#xff0c;从而比较好的达到远程控制终端的目的&#xff1b; …

java hutool工具类实现将数据下载到excel

通过hutool工具类&#xff0c;对于excel的操作变得非常简单&#xff0c;上篇介绍的是excel的上传&#xff0c;对excel的操作&#xff0c;核心代码只有一行。本篇的excel的下载&#xff0c;核心数据也不超过两行&#xff0c;简洁方便&#xff0c;特别适合当下的低代码操作。 下载…

JAVA后端上传图片至企微临时素材

1.使用场景 在使用企业微信API接口中&#xff0c;往往开发者需要使用自定义的资源&#xff0c;比如发送本地图片消息&#xff0c;设置通讯录自定义头像等。 为了实现同一资源文件&#xff0c;一次上传可以多次使用&#xff0c;这里提供了素材管理接口&#xff1a;以media_id来…

【AI绘画UI+Windows部署】Fooocus:Controlnet原作者结合了sd的开源和Midjourney重新设计的UI

代码&#xff1a;https://github.com/lllyasviel/Fooocus windows一键启动包下载&#xff1a;https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-831.7z B站视频教程&#xff1a;AI绘画入门神器&#xff1a;Fooocus | 简化SD流程&#xff0c…

深度学习(12)--Mnist分类任务

一.Mnist分类任务流程详解 1.1.引入数据集 Mnist数据集是官方的数据集&#xff0c;比较特殊&#xff0c;可以直接通过%matplotlib inline自动下载&#xff0c;博主此处已经完成下载&#xff0c;从本地文件中引入数据集。 设置数据路径 from pathlib import Path# 设置数据路…

1E,Jarvis March

四个问题&#xff1a; 一&#xff0c;Jarvis March算法借鉴了什么算法&#xff1f; 二&#xff0c;如何确定初始点 三&#xff0c;如何获取凸包的边&#xff1f; 四&#xff0c;Jarvis March算法的好处在哪里&#xff1f; 首先看第一个问题&#xff0c; 一&#xff0c;Jarvis …