React 數(shù)字滑動器

先上效果圖

demo.gif

源碼已上傳github
源碼已上傳gitee

思路

使用兩張圖片拼起來,數(shù)字就是
0、1、2、3、4、5、6、7、8、9、0、1、2、3、4、5、6、7、8、9
1.使用偏移量移動化的方式往上偏移
2.當(dāng)偏移的數(shù)字大于上次的數(shù)組就正常偏移
3.第二次數(shù)字小于上次的數(shù)字,就要持續(xù)往上偏移到指定數(shù)字
4.之后再把偏移的位置設(shè)置到最初的位置上

目前是一直往上滾動切換數(shù)字

實現(xiàn)

利用 transform 的 translateY 偏移和 transition 動畫來實現(xiàn)

具體實現(xiàn)

代碼中注釋很清楚,不懂的可以評論區(qū)或者私信我


截屏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>
  )
}

更多閱讀

還有一種實現(xiàn)方式是使用
transform: transationY + background-position 錨點來實現(xiàn),具體實現(xiàn)可以自己嘗試下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文目錄 1.font:綜合設(shè)置字體樣式 2.CSS復(fù)合選擇器(交集并集后代子代) 3.CSS 三大特性(層疊性繼...
    前端輝羽閱讀 738評論 0 7
  • 一、CSS中的屬性和取值 1.文本類屬性: text-align屬性:此標簽內(nèi)容的水平對齊方式,內(nèi)容須為具體文字/...
    劉遠舟閱讀 663評論 0 1
  • 課程目標: 學(xué)會使用CSS選擇器熟記CSS樣式和外觀屬性熟練掌握CSS各種選擇器熟練掌握CSS各種選擇器熟練掌握C...
    桃花蘭島主閱讀 610評論 0 1
  • 盒子模型(CSS重點) 其實,CSS就三個大模塊: 盒子模型 、 浮動 、 定位,其余的都是細節(jié)。要求這三部分,...
    xlystar閱讀 2,016評論 0 1
  • 一、CSS入門 1、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設(shè)定的標簽(元素)”。 有若干種形式的...
    寵辱不驚丶歲月靜好閱讀 1,708評論 0 6

友情鏈接更多精彩內(nèi)容