关键词查找网站广东建设注册执业中心网站

pingmian/2026/1/25 19:03:50/文章来源:
关键词查找网站,广东建设注册执业中心网站,武威建设厅网站,济南卓远网站建设文章目录 前言一、滚动元素相关属性回顾一、实现分析二、代码实现示例#xff1a;2、继续添加功能#xff0c;增加鼠标移入停止滚动、移出继续滚动效果2、继续完善 前言 列表自动滚屏效果常见于大屏开发场景中#xff0c;本文将讲解用vue3实现一个无缝衔接、滚动平滑的列表自… 文章目录 前言一、滚动元素相关属性回顾一、实现分析二、代码实现示例2、继续添加功能增加鼠标移入停止滚动、移出继续滚动效果2、继续完善 前言 列表自动滚屏效果常见于大屏开发场景中本文将讲解用vue3实现一个无缝衔接、滚动平滑的列表自动滚屏效果并支持鼠标移入停止滚动、移出自动滚动。 一、滚动元素相关属性回顾 scrollHeight滚动元素总高度包括顶部被隐藏区域高度页面可视区域高度底部未显示区域高度 scrollTop滚动元素顶部超出可视区域的高度通过改变该值可以控制滚动条位置 一、实现分析 1、如何让滚动条自动滚动? scrollTop属性表示滚动元素顶部与可视区域顶部距离也即滚动条向下滚动的距离只要设置一个定时器setInterval相同增量改变scrollTop值就能匀速向下滚动 2、如何做到滚动平滑无缝衔接 无缝衔接要求滚动到最后一个数据下面又衔接上从头开始的数据造成一种无限滚屏假象平滑要求从最后一数据衔接上首个数据不能看出滚动条或页面有跳动效果。实现方案可以多复制一份列表数据追加在原数据后面当滚动到第一份数据的末尾由于后面还有复制的数据滚动条依然可以向下滚动直到第一份数据最后一个数据滚出可视区域再把滚动条重置到初始位置scrollTop0此时从第二份数据首个位置变到第一份数据的首个位置由于页面数据一样视觉效果上看将感觉不到页面的滚动和变化所以就能得到平滑无缝衔接效果。 二、代码实现 示例 demo.vue templatediv classpagediv classwarning-viewdiv classlabel预警信息/divdivclassscroll-viewrefscrollViewRefdiv reflistRef classlist v-for(p, n) in 2 :keyndiv classitem v-for(item, index) in data :keyindexdiv classcontent预警消息 {{ index }}/divdiv classtime2024-11-06/div/div/div/div/div/div /templatescript setup import { ref, onBeforeMount, onMounted, onBeforeUnmount, nextTick } from vue; const data ref(); //列表数据 const listRef ref(); //列表dom const scrollViewRef ref(); //滚动区域domlet intervalId null;//获取列表数据 const getData () {//模拟接口请求列表数据return new Promise((resolve, reject) {setTimeout(() {//生成10条数据let list new Array(10).fill().map((item, index) index);resolve(list);}, 1000);}); };onMounted(async () {data.value await getData();nextTick((){autoScrolling()}) }); //设置自动滚动 const autoScrolling () {intervalId setInterval(() {if (scrollViewRef.value.scrollTop listRef.value[0].clientHeight) {scrollViewRef.value.scrollTop 1;} else {scrollViewRef.value.scrollTop 0;}}, 20); };onBeforeUnmount(() {//离开页面清理定时器intervalId clearInterval(intervalId); });/scriptstyle scoped .page {width: 100%;height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #010c1e;color: #fff; } .warning-view {width: 400px;height: 400px;border: 1px solid #fff;display: flex;flex-direction: column; } .label {color: #fff;padding: 20px;font-size: 22px; } .scroll-view {flex: 1;height: 0;width: 100%;overflow-y: auto; } .list {width: 100%;padding: 0 20px;box-sizing: border-box; } .item {width: 100%;height: 50px;min-height: 50px;font-size: 16px;display: flex;align-items: center;justify-content: space-between;color: #eee; } /** *隐藏滚动条*/::-webkit-scrollbar{display: none;} /style 说明布局方面 定义了一个可滚动父元素div(scrollViewRef)子元素 通过v-for(p, n) in 2“ 循环渲染2份相同的列表数据并挂载在2个divlistRef上每隔20ms滚动条scrollTop1直到滚完第一个列表最后一个数据出了屏幕滚动条重新回到初始位置。通过scrollViewRef.value.scrollTop listRef.value[0].clientHeight判断。 运行效果 ps:由于视频转gif帧率变小造成看起来有些卡顿实际滚动效果非常丝滑 2、继续添加功能增加鼠标移入停止滚动、移出继续滚动效果 demo.vue templatediv classpagediv classwarning-viewdiv classlabel预警信息/divdivclassscroll-viewrefscrollViewRefmouseenteronMouseentermouseleaveonMouseleavediv reflistRef classlist v-for(p, n) in 2 :keyndiv classitem v-for(item, index) in data :keyindexdiv classcontent预警消息 {{ index }}/divdiv classtime2024-11-06/div/div/div/div/div/div /templatescript setup import { ref, onBeforeMount, onMounted, onBeforeUnmount, nextTick } from vue; const data ref(); //列表数据 const listRef ref(); //列表dom const scrollViewRef ref(); //滚动区域domlet intervalId null; let isAutoScrolling true; //是否自动滚动标识//获取列表数据 const getData () {//模拟接口请求列表数据return new Promise((resolve, reject) {setTimeout(() {//生成10条数据let list new Array(10).fill().map((item, index) index);resolve(list);}, 1000);}); };onMounted(async () {data.value await getData();nextTick(() {autoScrolling();}); });//设置自动滚动 const autoScrolling () {intervalId setInterval(() {if (scrollViewRef.value.scrollTop listRef.value[0].clientHeight) {scrollViewRef.value.scrollTop isAutoScrolling ? 1 : 0;} else {scrollViewRef.value.scrollTop 0;}}, 20); };onBeforeUnmount(() {//离开页面清理定时器intervalId clearInterval(intervalId); });//鼠标进入停止滚动 const onMouseenter () {isAutoScrolling false; }; //鼠标移出继续滚动 const onMouseleave () {isAutoScrolling true; }; /scriptstyle scoped .page {width: 100%;height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #010c1e;color: #fff; } .warning-view {width: 400px;height: 400px;border: 1px solid #fff;display: flex;flex-direction: column; } .label {color: #fff;padding: 20px;font-size: 22px; } .scroll-view {flex: 1;height: 0;width: 100%;overflow-y: auto; } .list {width: 100%;padding: 0 20px;box-sizing: border-box; } .item {width: 100%;height: 50px;min-height: 50px;font-size: 16px;display: flex;align-items: center;justify-content: space-between;color: #eee; } /** *隐藏滚动条*/::-webkit-scrollbar{display: none;} /style 说明定义一个全局变量isAutoScrolling标识鼠标是否移入当鼠标移入isAutoScrolling为falsescrollTop增量为0当鼠标移出scrollTop增量恢复到1scrollViewRef.value.scrollTop isAutoScrolling ? 1 : 0; 运行效果ps:由于视频转gif帧率变小造成看起来有些卡顿实际滚动效果非常丝滑 2、继续完善 上面示例都是默认数据较多会出现滚动条情况下实现的实际开发过程列表数据是不固定的可能很多条也可能很少无法超出屏幕出现滚动条比如列表只有一条数据情况下是不需要自动滚动的这时候如果强制v-for(p, n) in 2“ 复制一份数据页面会渲染2条一样数据而且无法出现滚动条所以正确做法还需要动态判断列数是否会出现滚动条满足出现的条件才去设置自动滚屏。 是否出现滚动条判断滚动区域高度自身可见区域高度scrollHeight clientHeight说明有滚动条 完整代码示例 demo.vue templatediv classpagediv classwarning-viewdiv classlabel预警信息/divdivclassscroll-viewrefscrollViewRefmouseenteronMouseentermouseleaveonMouseleavediv reflistRef classlist v-for(p, n) in count :keyndiv classitem v-for(item, index) in data :keyindexdiv classcontent预警消息 {{ index }}/divdiv classtime2024-11-06/div/div/div/div/div/div /templatescript setup import { ref, onBeforeMount, onMounted, onBeforeUnmount, nextTick } from vue; const data ref(); //列表数据 const listRef ref(); //列表dom const scrollViewRef ref(); //滚动区域dom const count ref(1); //列表个数let intervalId null; let isAutoScrolling true; //是否自动滚动标识//获取列表数据 const getData () {//模拟接口请求列表数据return new Promise((resolve, reject) {setTimeout(() {//生成10条数据let list new Array(10).fill().map((item, index) index);resolve(list);}, 1000);}); };onMounted(async () {data.value await getData();nextTick(() {//判断列表是否生成滚动条count.value hasScrollBar() ? 2 : 1;//有滚动条开始自动滚动if (count.value 2) {autoScrolling();}}); }); //判断列表是否有滚动条 const hasScrollBar () {return scrollViewRef.value.scrollHeight scrollViewRef.value.clientHeight; }; //设置自动滚动 const autoScrolling () {intervalId setInterval(() {if (scrollViewRef.value.scrollTop listRef.value[0].clientHeight) {scrollViewRef.value.scrollTop isAutoScrolling ? 1 : 0;} else {scrollViewRef.value.scrollTop 0;}}, 20); };onBeforeUnmount(() {//离开页面清理定时器intervalId clearInterval(intervalId); });//鼠标进入停止滚动 const onMouseenter () {isAutoScrolling false; }; //鼠标移出继续滚动 const onMouseleave () {isAutoScrolling true; }; /scriptstyle scoped .page {width: 100%;height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #010c1e;color: #fff; } .warning-view {width: 400px;height: 400px;border: 1px solid #fff;display: flex;flex-direction: column; } .label {color: #fff;padding: 20px;font-size: 22px; } .scroll-view {flex: 1;height: 0;width: 100%;overflow-y: auto; } .list {width: 100%;padding: 0 20px;box-sizing: border-box; } .item {width: 100%;height: 50px;min-height: 50px;font-size: 16px;display: flex;align-items: center;justify-content: space-between;color: #eee; } /*隐藏滚动条*/::-webkit-scrollbar{display: none;} /style 运行效果 把数据改成只有一条 //获取列表数据 const getData () {//模拟接口请求列表数据return new Promise((resolve, reject) {setTimeout(() {//生成1条数据let list new Array(1).fill().map((item, index) index);resolve(list);}, 1000);}); };运行效果

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

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

相关文章

网站备案是指什么南通集团网站建设

题库来源:安全生产模拟考试一点通公众号小程序 通信安全员ABC证新版试题根据新通信安全员ABC证考试大纲要求,安全生产模拟考试一点通将通信安全员ABC证模拟考试试题进行汇编,组成一套通信安全员ABC证全真模拟考试试题,学员可通过…

班级网站建设组织机构融资平台

题解:判断d是否整除,可以转化为求这段区间内d的因子的指数是否均大于d中的指数。容易想到把每个数字都分解为素因子形式,对每个素数出现的次数求个前缀和即可。然而,这样时间空间都不行。注意到对于一个数x,小于sqrt(x…

腾讯网站站内面包屑导航叫人做网站多少钱

客户那里有Gigaset手机,安装我们的产品需要注入DeviceOwner,但是刚恢复默认出厂的Gigaset手机很奇葩,注入权限的提示下面错误,导致不能使用我们的产品 设置DeviceOwner权限是有限制的,需要手机账号(acount)为0 1 我们用命令查看手机的帐号 adb shell dumpsys account …

做网站前端网址可以自己写吗wordpress 中文文件名

一 MQ 的基本概念 1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。消息队列就是所谓的存放消息的队列。 消息队列解决的不是存放消息的队列的⽬的,解决的是通信问…

wordpress前台用户中心代码wordpress 优化''

目录 课程教学一次简单的Hack程序的编译与链接Linux下的可执行文件格式ELF进程虚拟地址空间程序的编译与链接程序的装载与进程的执行x86&amd64汇编简述 课程教学 课程链接:https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source7b06bd7a9dd90c45c5c9c44d12…

昆山做网站好的建设门户网站的可行性分析

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

什么样的企业需要做网站做网站如何配置自己的电脑

在开发 H5 应用的时候碰到一个问题,应用只需要一张小的缩略图,而用户用手机上传的确是一张大图,手机摄像机拍的图片好几 M,这可要浪费很多流量。获取图片通过 File API 获取图片。var input document.createElement(input);input…

网站开发产生费用分录怎么写网站建设开发维护

1.PHP表单处理PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据GET 和 POST 都创建数组(例如,array( key > value, key2 > value2, key3 > value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。…

欢迎访问陕西省交通建设集团公司网站长春网站优化流程

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:202. 快乐数 - 力扣(Leetcode) 这道题的题目也很容易理解, 看一下题目给的示例就能很容易明白, 但是要注意一个点&#…

win7 iis 默认网站属性网站设配色

Blocks概要 Blocks是C语言的扩充功能,即带有自动变量的匿名函数。匿名函数就是不带函数名的函数。这一概念同样被称为“闭包”,lambda计算等。 自动变量是在函数内部声明的变量,其作用域仅限于声明它的函数内部。这意味着它们只能在其声明的…

苏州市网站制作台州网站制作咨询薇

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

网站服务器排名前十广州市外贸网站建设企业

初识sql语句 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型: DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTERDML语句 数据库操纵语言&a…

云梦县城乡建设局网站百度关键词优化推广

概述 最近工作中有用到ES ,当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本: 7.17.3 一、下载 ElasticSearch 点此下载 下载完成后上传至 Linux 服务器,本文演示放在: /root/ 下,进行解压&#xff1…

关于网站建设的外文文献网站建设开发方式包括一l丫

目录 一.配置软件仓库 二.安装http php miriadb 三.配置数据库 四.源码拖拽并解压 五.防火墙通过 六.浏览器安装测试 七.界面参数设置 一.配置软件仓库 1.进入仓库目录 cd /etc/yum.repos.d 2.创建仓库文件 vim local.repo 3.在 local.repo中写入:(粘贴的时候注意位…

建设网站重庆软件工程就业方向及薪资待遇

报 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址: http://blog.csdn.net/jobchanceleo/archive/2007/04/17/1568254.aspx 有个朋友Min十几年工作经验&…

河源网站搭建费用深圳工业设计协会

概述MySQL最强大的功能之一就是能在数据检索的执行中连接(join)表。大部分的单表数据查询并不能满足我们的需求,这时候我们就需要连接一个或者多个表,并通过一些条件过滤筛选出我们需要的数据。了解MySQL连接查询之前我们先来理解下笛卡尔积的原理。数据…

下沙建设局网站深圳软件公司工资有多少

1.将训练集、验证集、测试集按照7:2:1随机划分 1.项目准备 1.在项目下新建一个py文件,名字就叫做splitDataset1.py 2.将自己需要划分的原数据集就放在项目文件夹下面 以我的为例,我的原数据集名字叫做hatDataXml 里面的JPEGImages装的是图片 Annota…

教你做兼职的网站wordpress头像class

1. 元组 Tuple 是 C# 中表示元组(Tuple)的数据结构。元组是一个用于存储一组有序元素的数据结构,每个元素可以是不同类型的数据。在 C# 中,元组是值类型,允许存储多个值,并且可以通过索引或者具名字段访问…

网络技术员工作内容周口seo

试卷代号:1376 2021年春季学期期末统一考试 机械制造装备及设计 试题 2021年7月 一、单项选择题(从所给的四个选项中,找出你认为是正确的答案,将其编号填入括号内。每小题3分,共30分) 1.卧式支承的机床重心…

罗湖微信网站制作网站域名重要吗

微信小程序可以使用wx.navigateToMiniProgram方法实现跳转到其他小程序,但是跳转到网页需要使用wx.navigateTo方法,并将所跳转的地址写在URL参数中。 例如,跳转到百度的网页可以使用以下代码: wx.navigateTo({url: https://www.…