React 数字滑动器

先上效果图

demo.gif

源码已上传github
源码已上传gitee

思路

使用两张图片拼起来,数字就是
0、1、2、3、4、5、6、7、8、9、0、1、2、3、4、5、6、7、8、9
1.使用偏移量移动化的方式往上偏移
2.当偏移的数字大于上次的数组就正常偏移
3.第二次数字小于上次的数字,就要持续往上偏移到指定数字
4.之后再把偏移的位置设置到最初的位置上

目前是一直往上滚动切换数字

实现

利用 transform 的 translateY 偏移和 transition 动画来实现

具体实现

代码中注释很清楚,不懂的可以评论区或者私信我


截屏2021-06-28 下午12.29.56.png

使用方法

目前组件已单独封装成组件使用时:

import { Draw } from './components'
export const App: React.FC = () => {
  const [numberList, setNumberList] = useState([1, 2, 3, 4, 5, 6])
  useEffect(() => {
    setInterval(() => {
      console.log('-------')
      setNumberList([
        rand(10),
        rand(10),
        rand(10),
        rand(10),
        rand(10),
        rand(10),
      ])
    }, 2000)
  }, [])
  function rand(n) {
    return Math.floor(Math.random() * n)
  }
  return (
    <div className={styles.App}>
      <header className={styles['App-header']}>
        <img src={logo} className={styles['App-logo']} alt="logo" />
        <div className={styles['draw-bg']}>
          {numberList.map((res) => {
            return <Draw count={res} />
          })}
        </div>
      </header>
    </div>
  )
}

更多阅读

还有一种实现方式是使用
transform: transationY + background-position 锚点来实现,具体实现可以自己尝试下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文目录 1.font:综合设置字体样式 2.CSS复合选择器(交集并集后代子代) 3.CSS 三大特性(层叠性继...
    前端辉羽阅读 3,875评论 0 7
  • 一、CSS中的属性和取值 1.文本类属性: text-align属性:此标签内容的水平对齐方式,内容须为具体文字/...
    刘远舟阅读 3,635评论 0 1
  • 课程目标: 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握C...
    桃花兰岛主阅读 3,624评论 0 1
  • 盒子模型(CSS重点) 其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都是细节。要求这三部分,...
    xlystar阅读 5,941评论 0 1
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 5,559评论 0 6

友情链接更多精彩内容