一種序列幀在rem布局下的消抖方法

2021-08-27 03:04:06 字數 926 閱讀 7177

最近在專案中遇到了個問題,由於要在移動端使用乙個等待的動畫,但是我本人是菜鳥,canvas不是很懂,所以只能讓ui做了個序列幀動畫來替換。

我頁面是使用rem布局的,所以在使用序列幀中,出現了序列幀動畫抖動的問題,可檢視如圖

可從圖中明顯看到,此動畫會有明顯的左右抖動問題。當前的的css如下圖:

html結構如下圖:

抖動的原因是因為rem布局中,根元素的字型大小含有小數,也就是在計算序列幀的位置的時候,會出現計算位置的偏差,可能在某一幀的時候,偏左了或者偏右。為了解決問題,我想到了使用css縮放(transform: scale())這個方法來暫時解決抖動的問題。

在使用序列幀中,使用px單位的能夠準確的表達當前動畫的位置,所以,我將包含序列幀的div的樣式,全部都使用成px為單位,然後使用js計算當前元素的縮放倍數。

計算公式大概是這樣子的:

改了之後,我的css樣式變為如下圖:

html結構保持不變,js增加計算倍數的**

勿吐槽我的**,這裡面**沒有優化過的。

使用了以上方法後,rem布局下的動畫就消去了抖動了,如下圖:

一種可靠的按鍵消抖方法

按一定的間隔取樣,連續多次都處於按下狀態才判定為按下狀態,可以有效的減少誤操作。具體實現如下 ifndef key h define key h include typedef struct key t key t ifdef cplusplus extern c 清除按鍵的按下事件標誌 stati...

windows下安裝django的一種方法

django版本是1.3.1,壓縮包。1.首先將django 1.31壓縮包解壓,使其與python2.7在同一根目錄下 2.之後進入cmd,通過命令python setup.py install進行安裝。python2.7和django 1.3.1都是存放在本地的c盤 安裝成功以後,可以通過以下命...

一種加快在蘋果app store中上架的方法

2 在itunesconnect上新增新版本號更新2.0。3 上傳應用 4 應用進入 waiting for review 狀態 2 9天 5 應用進入in review 狀態 2 5天 7 ready for sale 5分鐘 8 for sale 1 開發應用的同一時候,在 在itunescon...