vue3原生方法滚动列表

效果图

在这里插入图片描述

代码

在这里插入图片描述

import { ref, onBeforeUnmount, onUnmounted } from "vue";
//定时器初始化
let timer = ref(null);
//ref绑定初始化
let roll = ref(null);
//等同于vue2中的beforeDestroy
onBeforeUnmount(() => {
	//清除定时器
	clearTimeout(timer.value);
});
//等同于vue2中的destroyed
onUnmounted(() => {
	//清除定时器
	clearTimeout(timer.value);
});
/**
 * @Description: 鼠标移动事件
 * @Author: admin
 */
function testMove() {
	clearTimeout(timer.value);
}
/**
 * @Description: 鼠标离开事件
 * @Author: admin
 */
function testMend() {
	start();
}
//开启定时器方法
function start() {
	//清除定时器
	clearTimeout(timer.value);
	//定时器触发周期
	let speed = ref(25);
	timer.value = setInterval(MarqueeTest, speed.value);
}
function MarqueeTest() {
	let test1 = roll.value;
	//判断组件是否渲染完成
	if (test1.offsetHeight == 0) {
		test1 = roll.value;
	} else {
		//如果列表数量过少不进行滚动
		if (test1.childNodes.length < 6) {
			clearTimeout(timer.value);
			return;
		}
		//组件进行滚动
		test1.scrollTop += 1;
		//判断滚动条是否滚动到底部
		if (test1.scrollTop == test1.scrollHeight - test1.clientHeight) {
			//获取组件第一个节点
			let a = test1.childNodes[0];
			//删除节点
			test1.removeChild(a);
			//将该节点拼接到组件最后
			test1.append(a);
		}
	}
}
let tableData = ref([]);
// init 方法是我暴露的方法,父组件通过调用这个方法传递列表的数据
const init = val => {
	tableData.value = val;
	//注
	//示例中 listData 写的静态数据 可以直接调用start()
	//如果是接口获取 listData 列表时 需在 nextTick 中调用 start();否则,
	//进入页面不会滚动 必须鼠标移入移出才会滚动
	//用nextTick 的原因是 需要等dom元素加载完毕后 再执行方法

	// nextTick(() => {
	start();
	// });
};

defineExpose({
	init
});

样式

首先,你开始循环的盒子的外部的盒子要设置高度和overflow,overflow: scroll,是鼠标移入,可以滑动,overflow: hidden,是鼠标移入没法滚动,

.scrollClass {
	width: 100%;
	height: 100%;
	overflow: scroll;
}
.scrollClass::-webkit-scrollbar {
	display: none;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

简单实现Spring容器(二) 封装BeanDefinition对象放入Map

阶段2: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象.2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.思路: 1.将 bean 信息封装到 BeanDefinition对象中,再将其放入到BeanDefinitionMap集合中,集合的结构大概是 key[beanName]–value[beanDefintion…

【图对比学习】GACN:使用对抗网络增强图对比学习

#论文题目&#xff1a;Graph Contrastive Learning with Generative Adversarial Network&#xff08;使用对抗网络增强图对比学习&#xff09; #论文地址&#xff1a;https://dl.acm.org/doi/pdf/10.1145/3580305.3599370 #论文源码开源地址&#xff1a;暂无 #论文所属会议&am…

如何公网访问内网的群晖NAS随时随地远程访问本地存储的学习资源

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

超卓航科引领冷喷涂增材制造革新,推动先进核反应堆发展

近日&#xff0c;超卓航科凭借其卓越的冷喷涂增材制造技术&#xff0c;成为推动核能领域创新的重要力量。该公司利用冷喷涂工程技术&#xff0c;或为核反应堆的制造和修复开辟了全新的道路。 冷喷涂技术是一种颇具前景的固态粉末沉积方法&#xff0c;可用于涂层制造、增材制造和…

【日志技术】附Logback入门教程

文章目录 日志概论日志的体系Logback快速入门日志配置文件配置日志级别 日志概论 什么是日志&#xff1f;其实可以通过下面几个问题来了解的。 系统系统能记住某些数据被谁操作&#xff0c;比如被谁删除了&#xff1f;想分析用户浏览系统的具体情况&#xff0c;比如挖掘用户的…

脱碱软化树脂Tulsimer CXO-5 MP 高盐水除钙镁树脂

一、产品介绍 Tulsimer CXO-5 MP 是一款大孔弱酸性丙烯酸系阳离子交换树脂&#xff0c;能除去水中的碱度和硬度&#xff0c;特别是除去水中的碳酸氢盐、碳酸盐及其它碱性盐类&#xff0c;适合运用于纯水 ,脱碱软化及选择性的去除重金属。适合在宽广的 pH 及温度范围情况下操作…

数据结构之单链表(不带头单向非循环链表)

一.引言 上一节我们学过了顺序表&#xff0c;那么我们想想顺序表有没有问题呢&#xff1f;我们来讨论顺序表的问题及思考。 顺序表问题&#xff1a; 1.中间/头部的插入删除&#xff0c;时间复杂度为O(N) 2. 增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会…

Go语言基础知识学习(一)

Go基本数据类型 bool bool型值可以为true或者false,例子&#xff1a; var b bool true数值型 类型表示范围int8有符号8位整型-128 ~ 127int16有符号16位整型-32768 ~ 32767int32有符号32位整型-2147783648 ~ 2147483647int64有符号64位整型uint8无符号8位整型0 ~ 255uint16…

使用CLion进行cuda编程,并使用cuda-gdb对核函数进行debug,这可能是全网你能够找到的最详细的CLion和cuda编程环境配置教程了

文章目录 前言一、环境准备二、相关学习资料三、环境配置1.新建Clion C Executable项目2.在Clion中的ToolChains中配置cuda-gdb3.配置CMake options4.配置CMakeLists.txt(1) Failed to compute shorthash for libnvrtc.so(2) c: error: unrecognized command-line option -G(3)…

【华为数据之道学习笔记】3-2 基础数据治理

基础数据用于对其他数据进行分类&#xff0c;在业界也称作参考数据。基础数据通常是静态的&#xff08;如国家、币种&#xff09;&#xff0c;一般在业务事件发生之前就已经预先定义。它的可选值数量有限&#xff0c;可以用作业务或IT的开关和判断条件。当基础数据的取值发生变…

AI PC行业深度研究报告:AI PC革新端侧AI交互体验

今天分享的人工智能系列深度研究报告&#xff1a;《AI PC行业深度研究报告&#xff1a;AI PC革新端侧AI交互体验》。 &#xff08;报告出品方&#xff1a;华创证券&#xff09; 报告共计&#xff1a;28页 点击添加图片描述&#xff08;最多60个字&#xff09;编辑 一、硬件端…

mybatis多表映射-对多关联

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

【SpringBoot教程】SpringBoot 实现前后端分离的跨域访问(CORS)

作者简介&#xff1a;大家好&#xff0c;我是撸代码的羊驼&#xff0c;前阿里巴巴架构师&#xff0c;现某互联网公司CTO 联系v&#xff1a;sulny_ann&#xff08;17362204968&#xff09;&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗…

xtts和ogg不选择?

不选择ogg的理由&#xff1a; 1.需要在源端创建用户赋权&#xff0c;启用数据库最小日志&#xff0c;附加日志等操作--对生产影响较大 2.外键约束过多&#xff0c;割接启用可能很慢https://www.modb.pro/db/201126--割接停机时间影响 3.初始化配置expdp导出可能快照过旧&#x…

基于Java swing的医院信息管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

秒级监控、精准迅速:全面保障业务可用性 | 开源日报 No.101

louislam/uptime-kuma Stars: 41.1k License: MIT Uptime Kuma 是一个易于使用的自托管监控工具&#xff0c;主要功能和核心优势包括&#xff1a; 监控 HTTP(s) / TCP / HTTP(s) 关键词 / HTTP(s) Json 查询 / Ping / DNS 记录等服务的可用性提供时尚、响应迅速且良好用户体验…

docker配置连接harbor私有仓库

一、前言 以下分为两种情况说明docker对harbor私有仓库的访问配置&#xff0c;一种是harbor使用自建证书配置https&#xff0c;一种是使用公有证书配置https 二、docker配置 harbor使用自建证书的情况 使用自建证书对harbor进行https配置&#xff0c;docker会将该仓库识别成不…

客服工单系统推荐:哪个最适合您?

客服工单系统是企业的业务过程的“保安”&#xff0c;保障业务流程的顺利开展&#xff0c;同时保障企业客户的权益。所以&#xff0c;市场上有越来越多的企业纷纷配置了客服工单系统&#xff0c;以提供客户服务质量。 对于有购买意向的中小企业来讲&#xff0c;需要关注哪些因…

pycharm中py文件设置参数

在py文件中右键 直接对应复制进去即可

供应链管理痛点大解析!内附解决方案

供应链是指涉及产品或服务生产、运输、分销和最终交付给客户的过程。 用一个汽车制造的例子来帮助大家理解&#xff1a; 原材料采购&#xff1a; 汽车制造商需要从供应商处采购制造汽车所需的原材料&#xff0c;例如金属、橡胶、塑料和玻璃。生产制造&#xff1a;获得原材料&…