You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Vue与SCSS的数字滚动动画:两处核心代码逻辑问询

问题解答

1. HTML中i变量的来源

这个i是Vue循环渲染时的索引变量,来自包裹这段代码的v-for循环。

比如原代码里应该有类似这样的循环逻辑:

<div v-for="i in numberString.length" :key="i" class="item__digit">
  <!-- 你提问里的style绑定代码 -->
</div>

这里的i是循环的序号(从1开始),用i-1是因为字符串的charAt方法是从0开始索引的,这样就能精准取到numberString对应位置的数字字符,再转成数字乘以-100%,通过transform: translateY控制数字列表滚动到目标数字的位置。

2. SCSS代码的作用与实现逻辑

这段代码就是用来生成滚动所需的0-9数字列表,实现逻辑如下:

  • &-list是SCSS的父选择器嵌套语法,比如如果父类是.item__digit,这里就会编译成.item__digit-list。
  • 通过:before伪元素来生成内容,初始化$content为空字符串。
  • 用@for $i from 0 through 9循环遍历0到9的数字,每次把当前数字$i、换行符\A(让每个数字单独占一行)和空格拼到$content里。
  • 最后把拼接好的$content赋值给伪元素的content属性,这样伪元素就会渲染出0到9每个数字各占一行的内容。

配合CSS中设置的固定高度和line-height: 100%,每个数字刚好占满容器高度,后续通过Vue绑定的transform值,就能让列表滚动到对应数字的位置,实现滚动动画。

内容的提问来源于stack exchange,提问作者jyyam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:55:04