Foresight.js:一個靈活支持高清晰圖片的包

fmms 12年前發布 | 22K 次閱讀 JavaScript開發 JavaScript

以前我們用很多的時間,來解決網絡問題,到頭來還是很丑。

圖像的復雜問題沒有很好的解決方案。一個站點,以正確的屏幕和高清晰度圖像展示給高分辨率和低分辨率的設備。這當然沒那么簡單,帶寬,屏幕大小,方向等因素都很復雜。

現在最好的解決方案是以低分辨率的圖像傳到每個設備。雖然圖片在高分辨率屏幕顯示器里面看起來會很丑,但起碼會節約大家的時間成本。雖然這是目前最好的解決方案,但開發商們再不斷推出新的標準,來服務這看似簡單的事情。

目前我們看到最聰明的做法是亞當布拉德利(Adam Bradley)的Foresight.js,foresight.js使得在特定設備上展示高清晰圖片變得簡單,像新iPad。但它不單單做這些,它不 但檢查高分辨率屏幕,還檢查當前設備是否有較快的網絡來形成高清晰的圖像。只有這2個條件(高分辨率屏幕和較快網絡)兼備的情況下,才會形成高清晰的圖 像。

Foresight.js:一個靈活支持高清晰圖片的包

Foresight.js讓人著迷的部分原因是使用了image-set()函數。用法:

myselector {
background: image-set(url(foo-lowres.png) 1x, url(foo-highres.png) 2x) center;
}

Foresight.js使用了非常靈活的機制來適應不同的瀏覽器:font-family屬性。也看起來很瘋狂,但仍然是合理的CSS因為
font-family允許任意字符串(來處理字體名字),這意味著瀏覽器可以這樣:

myselector {
font-family: ‘ image-set( url(/images/foo.png), url(/images/foo_2x.png) 2x high-bandwidth ) ‘;
}

這猶如一種黑客行為,但這是我們所喜歡看到的:聰明和實用。因為瀏覽器成功解析font-family規則,value值會添加到DOM,javascript可以通過它,這正是foresight.js所做的。
本文轉載自: http://www.daidata.com/archives/1046

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!