從以前到現在的發展,網頁設計的開發對優化方面做的工作從未停止。網頁無圖也是為了減少頁面資源請求而提出的一種暢想。無可厚非在網頁開發的歷程中在網頁無圖方面我們已經取得了不朽的成就:從一開始零零碎碎的小圖標資源,到后來小圖標合并成一個圖片出現雪碧圖,再到后來Webfont的出現不僅可以取代雪碧圖,而且徹底解決了圖標管理難,變色實現麻煩的問題。今天我要跟大家介紹一個小工具,也是可以幫助實現網頁無圖這一**目標。理論上來講,它可以將任何一張圖片轉換成一個不帶圖片,不帶背景圖的干干凈凈的HTML標簽。但是這有前提:你的計算機得有足夠的資源去支撐。
漸入主題
既然可以使用一個標簽制作出一副精美的像素圖,那么是否就意味著可以用一個標簽還原任一一張圖片?**不能還原的是圖片的精細度問題。然而,如果可以精細到每一個像素點,那么高精度的還原整張圖也完全可行,只是這必將消耗非常多的計算機資源。這一設想便是催生這個小工具的催化劑,于是我便開始構思起來。
案例分析
通過使用***工具分析以上案例的源碼,我發現其實它的實現并不難。我們知道在CSS3中新增了一個設置盒子陰影的box-shadow屬性,而這個屬性可以同時設置任意多個不同顏色和擴散度的陰影塊,而案例正是**的詮釋了這個新屬性。
既然如此,那么我們現在來做個試驗,我們在任一一張圖上覆蓋上一個個大小相同的小方格子,我們就可以將任何一張圖片分隔成一個個的小方格,我們只要知道這些小方格的大小、順序和位置,我們就可以重組這張圖片,如下對比圖所示:
但是,有個問題:box-shadow的引用顏色是單色的,而每個盒子范圍內的圖案是復雜的,我們如何去處理這個問題?
因為box-shadow只能設置顏色,所以這個問題的結果只有一個,找出一個能代表這個格子的顏色,那么選取哪一個顏色值就因人而異了,可以選格子四角的任意一個、可選中心點,可選格子內的任意一個點,我選擇的是格子的左上角這個點。我們不難發現,如果我們盡可能的縮小格子,小到只剩下一個像素大小,我們就可以完整的還原一張圖片了。
技術實現
首先,我們考慮如何根據圖片去取到每個格子的顏色值?這個問題并不難,HTML5為我們提供了Canvas標簽,而通過Canvas我們可以使用getImageData方法獲取到畫布中任一一個點的顏色信息以及透明度信息。
然后,我們的IT技術來考慮如何設計我們的小工具。**步,根據不同的圖片可能會適合不同的格子大小,所以我會保留一個size選項用于設置盒子的大小;第二步,格子與格子之間是否保留間隙,可能根據用戶習慣會有不同,所以我提供space選項來設置間隙大小;第三步,格子實際就是一個盒子的其中一個陰影,而陰影的形狀是可以根據盒子本身發生變化的,所以我提供radius屬性來配置格子圓角大小;**,既然我們得到的將是一個html標簽,那么標簽是可以帶有各種屬性的(比如:id、class等),所以我提供一個attrs屬性(一個json對象),來設置生成的html元素的屬性。好了,萬事俱備,只欠代碼實現了!
**,我們梳理邏輯,封裝代碼,完成了最基礎的版本。效果如下所示:
**總結
從功能上來看,我實現了圖片到html元素的轉換,但是可能并非是**的網頁無圖實現方案,因為工具轉換出的HTML標簽,設置了太多的陰影塊,對瀏覽器的渲染并不友好,會對用戶計算機硬件有一定的要求,特別是塊大小為1(即完整還原圖片)的時候,轉換過程非常緩慢,如果圖片再大些,極有可能導致用戶瀏覽器崩潰,因此建議大家測試時慎用大圖做測試。而且,轉換后得到的html標簽和樣式字符串大小將有可能遠遠超過圖片本身的大小,所以我只能說這是一種可行的技術方案,但未必是好的實現方案。了解更多相關的視頻教程內容歡迎進入課課家教育官網查詢觀看!http://www.kokojia.com/
資訊來源:http://www.kokojia.com/article/5044.html
|
友情提示:
信息由用戶自行發布,如果發現錯誤或不符合法規或造成侵權,請及時通知本站更正或刪除,具體聯系方式見頁面底部聯系我們,謝謝。 |
當前頁在本站[名站在線]7天內點擊次數(點擊次數為零的日期不顯示): |
信息評估: |
(還沒有網友對該信息作出評估,你想為該信息提供第一個評估嗎?) |
MCH42A0110-*3-4-0TMCH42A0035-*3-4-0T
MCH42A0040-503-4-0T
MCH42A0040-*3-4-0T
MCH42A0075-503-4-0T
MCH42A0075-*3-4-0T
MCH42A0110-*3-4-0T
MCH42A0150-503-4-0T
MCH42A0200-503-4-0T
MCH42A0200-*3-4-0T
MCH42A0300-503-4-0T
MCH42A0300-*3-4-0T
SEW變頻器MPB51A系列型號
編號Cat.descriptionPartNO.
MPB51A011-503-00
MPB51A015-503-00
MPB51A024-503-00
福建鴻飛達自動化科技有限公司----張’S
電話0591-83855720
傳真0591-88263940傳...MVME147-0233286-000516-12A10VO45DFLR/31R-PSC12N00-681
A10VO45DFLR/31R-PSC12N00-813
A10VO45DFLR/31R-PSC62K04
A10VO45DFLR/31R-PSC62K68
A10VO45DFLR/31R-PSC62N00
A10VO45DFLR/31R-VRC11N00
A10VO45DFLR/31R-VRC12K04
A10VO45DFLR/31R-VSC12K01
A10VO45DFLR/31R-VSC62K01
A10VO45DFR/31L-PRC12K04
A10VO45DFR/31L-PSC12N00
A10VO45DFR/31L-PSC61N00
A10VO45DFR/31L-PSC62K02
福建鴻飛達自動化科技有限公司----張’S
電話0591-83855720
傳真0591-8826...ABB Bailey 6633940A1Bently72872-01
Bently72850-01-04-01-01-01-01-01-15
Bently9066-01
Bently72989-01
Bently72867-01
Bently106765-04
Bently140471-02
Bently88286-01
BentlyPWA37233
Bently72325-02
Bently79748-01
Bently134652-01
Bently24713-01
Bently131178-01
福建鴻飛達自動化科技有限公司----張’S
電話0591-83855720
傳真0591-88263940傳真請注明“張’S”收
直線15306977494
聯系人鴻飛達-張’S
QQ2851617303
微信15306977494/2...IDEC AVW4B-R USPP AVW4BRBently24713-01
Bently131178-01
Bently72851-04
Bently19047-02
Bently89416-01
Bently136188-01
Bently2290160
Bently72078-02
Bently72132-01
Bently3300
福建鴻飛達自動化科技有限公司----張’S
電話0591-83855720
傳真0591-88263940傳真請注明“張’S”收
直線15306977494
聯系人鴻飛達-張’S
QQ2851617303
微信15306977494/2851617303
----------------------------------------------------------
本公司是一家專業...MKS51A015-503-00原裝DANAHER21BRCX621JA8415FNFP21BRCX621JA8415
DYNAPAR/DANAHERH221000100245
Danaher/Partlow706718-E
DANAHERA5840960110USPPA5840960110
DanaherDA1313A301Timer
T30U03176NEWJOSLYNCLARKT30U03176DANAHER
DanaherControls/EagleSignalDX10*6
福建鴻飛達自動化科技有限公司----張’S
電話0591-83855720
傳真0591-88263940傳真請注明“張’S”收
直線15306977494
聯系人鴻飛達-張’S
QQ2851617303
微信15306977494/28516173...
|
|
|
|
|