vue 实现无缝向左滚动 鼠标悬停、离开时停止、开始滚动

2023-11-08

效果:
在这里插入图片描述

可以根据此代码改为轮播

html代码:

<template>
  <div class="announcement">
    <div class="cont">
      <div
        class="contlist"
        ref="contlist"
        @mouseover="stopScroll"
        @mouseout="startScroll"
      >
        <ul>
          <li v-for="(item, index) in list" :key="index">
            {{ index + 1 }}{{ item.name }} {{ item.time }}
          </li>
        </ul>
        <ul>
          <li v-for="(item, index) in list" :key="index">
            {{ index + 1 }}{{ item.name }} {{ item.time }}
          </li>
        </ul>
      </div>
    </div>
  </div>
</template>

JS代码:

<script>
export default {
  name: "",
  data() {
    return {
      list: [
        { name: "全运会女子三人篮球成年组资格赛本周开赛", time: "2019-12-18 16:20:34" },
        { name: "河南建业更名为 “河南嵩山龙门”", time: "2019-12-18 16:20:34" },
        { name: "河南队勇夺全国女篮 联赛三人制比赛 亚军", time: "2019-12-18 16:20:34" },
        { name: "省足协俱乐部杯锦标赛圆满落幕", time: "2019-12-18 16:20:34" },
        { name: "备战全运会建业女足迎来新教练", time: "2019-12-18 16:20:34" },
        { name: "2020年河南省体育传统项目学校国家级体育俱乐部中学生篮球锦标赛开幕式在河南", time: "2019-12-18 16:20:34" },
        { name: "全国男排超级联赛 河南男排获得第八", time: "2019-12-18 16:20:34" },
      ],
      scrollW: 0, //记录滚动到哪了
    };
  },
  created() {},
  methods: {
    //鼠标悬停,停止滚动
    stopScroll() {
      var target = this.$refs.contlist;
      clearInterval(this.scrollTime);
    },
    //鼠标移开 ,接着滚动
    startScroll() {
      var target = this.$refs.contlist;
      this.scrollW = target.offsetLeft; // 移开时记录向左移动的距离
      this.scroll();
    },
    //循环滚动
    scroll() {
      var that = this; //因为定时器里要使用vue对象时不能用this, 在定时器中的 this 代表
      var target = this.$refs.contlist;
      var initLeft = 0;
      if (this.scrollW < 0) {
        initLeft = this.scrollW * -1;
      }
      //定时器
      this.scrollTime = setInterval(function () {
        initLeft++;
        if (initLeft >= target.offsetWidth / 2) {
          initLeft = 0;
        }
        target.style.left = "-" + initLeft + "px"; //获取不到translateX的值改用 left

        //target.style = 'transform: translateX(-'+ initLeft +'px)';
      }, 16);
    },
  },
  mounted() {
    //实例挂载完毕前
    //调用滚动代码
    this.scroll();
  },
};
</script>

css代码:

<style scoped lang="css">
ul,
li,
em {
  margin: 0;
  padding: 0;
}
.cont {
  height: 40px;
  line-height: 40px;
  background-color: #000;
  color: #fff;
  overflow: hidden;
  position: relative;
}
.contlist {
  position: absolute;
  white-space: nowrap;
  display: flex;
  flex-direction: row;
}
.contlist ul {
  display: flex;
  flex-direction: row;
}
.contlist ul li {
  font-size: 12px;
  margin-right: 25px;
  height: 40px;
  line-height: 40px;
  display: flex;
  flex-direction: row;
}
.contlist ul li em {
  color: #f80;
  font-size: 12px;
  padding-right: 10px;
}
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 实现无缝向左滚动 鼠标悬停、离开时停止、开始滚动 的相关文章

随机推荐

  • [HFSS]Floquet port激励及主从边界设置(实例)

    Floquet port激励及主从边界设置 1 Floquet port简介 2 基本模型建立 3 主从边界设置 4 wave port 设置 5 floquet port 设置 6 Analysis setup 7 验证 仿真 8 结果演
  • Python标准库、模块、包的区别

    文章目录 模块 包 标准库 第三方库 自定义模块 模块 模块可定义为一个包含python定义和语句的 py文件 模块中包含python代码以及python函数 类或python变量 一个模块可以被其他 py文件导入使用 也可以单独作为脚本文
  • 3.3 Git 分支 - 分支管理

    3 3 Git 分支 分支管理 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 23 初稿 目录 文章目录 3 3 Git 分支 分支管理 版本说明 目录 分支管理 分支管理 现在已经创建 合并 删除了一些分支 让我们看看
  • 51单片机的几种中断的用法

    1 外部中断0 外部中断0实验 实现现象 下载程序后按下K3按键可以对D1小灯状态取反 注意事项 无 include reg52 h 此文件中定义了单片机的一些特殊功能寄存器 typed
  • gitlab可以访问,但git clone连接超时不能下载

    因此 我们可以把 http wozhendetainanle map 地址后面加上 git后缀 更改为 http wozhendetainanle map git 此时使用就可以下载了
  • 关于C#监视剪贴板信息

    1 常规方法 在C 中 有一个常规检测剪贴板的方法 用的是 System Windows Forms Clipboard 使用起来很简单 代码如下
  • 微信小程序中的App、Page、Component的生命周期函数

    有点混乱的官方文档 一 什么是生命周期和生命周期函数 字面意义上说 生命周期就是指一个对象自身的生老病死 在程序运行上也可以这么理解 程序也是对象 也有 生老病死 程序自身从创建到销毁的过程中 运行到特定的阶段 会触发特定的函数 这些函数
  • Distributed Database System —— 什么是嵌入式数据库?

    文章目录 什么是嵌入式数据库 Embedded Database 数据库服务器的架构 嵌入式数据库架构 区别 像Oracle Sybase MySQL和SQL Server这些大家熟知的数据库都属于数据库服务器 当然不排除某些也提供嵌入式版
  • “新”科学家Stephen Wolfram

    2011年10月的iPhone 4S发布会上 苹果副总裁Scott Forstall长按Home键 对着那个泛着紫色光晕的话筒问道 Stephen Wolfram 离圣诞节还有几天 让我查查 稍等 Scott得到了他想要的答案 82 天 也
  • 单片机设计_室内环境智能监测系统(STM32 OLED ESP8266 DHT11 MQ-2 加湿器)

    想要更多项目私wo 一 电路设计 室内环境智能监测系统 主要功能 1 检测空气温湿度 2 检测光照强度 3 检测烟雾浓度 4 数据显示在手机端和设备OLED屏幕上 5 当空气温度高于设定的阈值时 风扇开启 6 当空气湿度低于设定的阈值时 加
  • Hive基本架构和原理

    概述 Hive是建立在 Hadoop 上的数据仓库基础构架 它提供了一系列的工具 可以用来进行数据提取转化加载 ETL 这是一种可以存储 查询和分析存储在 Hadoop 中的大规模数据的机制 Hive 定义了简单的类 SQL 查询语言 称为
  • implicit declaration of function 问题解决

    C语言程序编译后出现警告 warning implicit declaration of function client tcpinit Wimplicit function declaration 原因 相关的头文件没有声明这个函数 在相
  • 如何使用Java以编程方式在Excel中创建数据透视表?

    Excel电子表格中的数据透视表用于以交互方式汇总数据 假设在工作表中有许多发票的数据 在这种情况下 可以使用数据透视表汇总按客户或产品分组的发票 在本文中 将学习如何以编程方式处理Excel中的数据透视表 特别是 将了解如何在Java中创
  • JavaScript—ES6 元编程(5)

    几年前 ES6 刚出来的时候接触过 元编程 Metaprogramming 的概念 不过当时还没有深究 在应用和学习中不断接触到这概念 比如 mobx 5 中就用到了 Proxy 重写了 Observable 对象 觉得有必要梳理总结一下
  • openGL之API学习(一一一)glUniform

    设置当前着色器程序中的一致变量的值 具体包含一系列函数 void glUniform1f GLint location GLfloat v0 void glUniform2f GLint location GLfloat v0 GLfloa
  • 持安零信任加入PKS体系生态联盟,共创办公安全新生态

    近日 PKS体系生态联盟公布最新一期会员单位名单 零信任办公安全领域的明星企业持安科技成为其网络安全领域新增会员 未来将与众多合作伙伴一同建设网络安全强国 PKS体系生态联盟是在中国电子信息产业集团有限公司的倡议下 广泛联合中央企业 国家研
  • html5--自定义属性

    一 添加属性 第一种不能html结构上看到 1 直接添加 通过querySelector获取到html元素之后 直接 属性进行初始化就可以为元素添加自定义属性了 div 123 div 2 setAttribute 属性名 属性值 添加自定
  • UML概述及UML类图详解

    引言 UML图有很多种 但是并非必须掌握所有的UML图 才能完整系统分析和设计工作 一般说来 在UML图中 只要掌握类图 用例图 时序图的使用 就能完成大部分的工作 也就是说 掌握UML的20 就能做80 的事情 对于程序员来说 最频繁使用
  • Unity_如何改变Image图片

    被改变的物体 public GameObject Tab3 需要改变的图片 public Sprite Tab3Img 加载将要用于修改的图片的路径 public string TabImgPath2 Image 2 void Start
  • vue 实现无缝向左滚动 鼠标悬停、离开时停止、开始滚动

    效果 可以根据此代码改为轮播 html代码