js实现数字滚动显示(最短滚动版)

本文介绍了如何使用JavaScript实现数字滚动效果,特别是在数字变化时,确保以最短的滚动次数从一个数字滚动到另一个数字。通过创建一个观察区域,设置元素高度并计算最短路径,实现了数字滚轮的动画效果。同时,文中还提到了防止滚动异常的重置机制,以保证滚动的准确性和流畅性。
摘要由CSDN通过智能技术生成

前言

标题解释:
数字滚动: 数字 0 变为 5,显示该数字的元素向上滚动最后显示 5
最短滚动: 数字 9 变为 1,向下滚动依次显示 9 - 0 - 1
如果这是你需要的‘组件’,那就继续吧!

需求

实例
存在两个数字 start、end,需要实现一个类似滚轮滚动的效果,由 start 滚动到 end,其中,每次滚动都需要以尽量少的次数滚动
例如:
9 - 1 ==> 9 - 0 - 1;
2 - 0 ==> 2 - 1 - 0;

实现

首先,一步步的来,我们先实现滚动效果,暂不考虑 最短滚动
先来一个窗口用来观察滚轮

<div class="scroller-window">
	<div class="single-window">
		<p>0</p><p>1</p><p>2</p><p>3</p><p>4</p>
		<p>5</p><p>6</p><p>7</p><p>8</p><p>9</p>
	</div>
</div>
.scroller-window {
   
  ...
  height: 3em;
  overflow: hidden;
}
.single-scroller {
   
  transition: transform ease-in;
}

接下来只需要将 scroller-window 下的 p元素高度设为 100%,然后,根据 end的值,将 single-scroller 滚动(translateY)即可

<
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值