參考了這篇文章,作者思路很清晰,簡單做了下修改,蟹蟹作者,鏈接在此:https://www.jb51.net/css/685357.html#comments
主要思路是利用css屬性writing-mode:vertical-lr;通過設定最大字符長度,補零,去循環,然后添加style translate和transition來完成想要的效果;
子組件根據父組件傳給的數值,父或者子刷新這個定時器都可以,以下我們的demo將在子組件進行定時刷新;
首先子組件dom結構:
css樣式:
然后就是子組件接收父組件傳給的值,默認值給0:
定義所需數據:
初始化的時候執行定時刷新,結束時記得清空定時器;建議定時器放在父組件,這里只是為了展示效果所以放在子組件。
還有就是,父組件傳來新的值時,需要觸發子組件刷新,這里我們在子組件用watch監聽下,執行下相應方法:
父組件調用下並傳入相應值就可以了:
父組件傳值有變化時 ,數字會自動滾動到相應位置:動畫時間可以自己設定,效果如圖所示:
此組件剛發現有個兼容性問題,css樣式里的
text-orientation:upright;在safari瀏覽器中並不生效,曲線救國就是改變dom結構:
就可以了。