亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

章節
問答
課簽
筆記
評論
占位
占位

補充內容雪碧圖的自適應縮放

本節的內容沒有在七夕主題效果中實現,這是一個額外的知識點,留給大家思考的一個問題:雪碧圖如何做自適應縮放?

本課程采用了CSS3的動畫關鍵幀實現了精靈動畫,所有的精靈圖都是通過合成的雪碧圖獲取的,這樣帶來了一個根本問題:通過background-position獲取的圖片,正常情況下是無法縮放的,因為圖片的位置是固定了,如果通過這種方式實現了精靈圖那么在不同的分辨率下其實都是固定的尺寸,這樣效果就明顯有點呆板了

針對這樣的問題,當然也有折中的辦法,比如我們不加載精靈圖,而是通過background-image加載一張一張的圖片,這樣是可以的,但是需要預加載的處理,否則圖片大了會閃屏了。一般精靈圖都是通過position處理比較合理,我們有沒有辦法把這個圖片給縮放一下達到自適應的目的呢?這里我給大家一個參考的方案,CSS3有一個scale可以這樣處理。

這里先參考下我右邊代碼的實現效果,人物是不是感覺縮放了?

縮放原理:

通過CSS3的scale處理直接可以讓元素縮放

需要處理的問題:

  • 需要計算出元素的縮放比,可以根據屏幕的寬度與UI的設計比例縮放

帶來的問題:

  • 通過scale縮放后瀏覽器認為這個元素尺寸是沒變化的,所以要得到縮放后的尺寸算法應該是 實際尺寸 * 縮放比
  • scale是默認按照中間基點縮放,所以需要計算出實際布局與縮放后布局的一個內部縮放距離,就是一個類似padding一樣的數據

具體的算法我右邊已經給出來了

通過UI的設計與屏幕算一個縮放比

$(document).width() / 1440

通過這個縮放比,設置下元素的縮放大小,然后通過實際的人物尺寸與縮放比算出人物內部縮放的數據boyInsideLeft與boyInsideTop

最終,要定為人物在中間位置的算法:

人物在馬路中間 = 馬路中間路的垂直距離 - 人物原始的垂直距離 - 人物縮放后的垂直距離

這樣算法我們可以弄一個公共方法出來,通過這樣的方式,我們可以很愉快的改造雪碧圖實現自適應布局了~~~

PS: 我之后又仔細研究下雪碧圖的自適應問題,想到一種比較完美的方案,具體可以參見我的博客:原創:CSS3技術-雪碧圖自適應縮放

 

任務

?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?