2011-12-13 18 views
1

我想切出徽標圖像並將其從大量小切片的網頁上構建,我想知道做到這一點的最佳方法是什麼是。如果可能,我寧願避免閃光。如何從網頁上的數百個小切片創建徽標圖像

我可以在Photoshop中切出徽標,然後逐漸刪除切片,並將其保存爲一系列以幻燈片形式運行的圖像。但正如我在談論大量切片時所說的那樣,大約需要500個切片,這需要時間,並且可能不像其他方法那麼好。

有沒有一種方法,使用jQuery也許,從許多小的html元素構建圖像?

或者還有更好的方法呢?

我很樂意提供任何建議。

感謝,

尼克

回答

3

這裏有一個想法,我覺得這是相當容易,甚至用「平淡」的JavaScript(但使用jQuery容易得多):

  1. 包括在完整的圖像您的頁面的樣式爲visibility : hidden,在相同大小的容器div內。
  2. 使用jQuery創建絕對定位在同一個容器div內的小不透明div的網格,使用z-index將它們放置在圖像上方,即覆蓋圖像。當你創建它們時,在數組中存儲每個對象的引用。
  3. 設置圖像到visibility : "visible"
  4. 通過它與setTimeoutsetInterval前述數組,然後循環隨機排序,在每次迭代中除去div來逐漸顯示圖片。

當然,上面的優點是它可以處理任何圖片而不必切片,並且您提到500個切片,您不會有500個http請求來加載所有圖片。如果你想讓每個單獨的片斷顯示出一點動畫效果,你可以用jQuery的.slideUp()或其他東西隱藏它。

另一方面,你可能會喜歡每一張照片從不同的方向或東西飛來。爲此,您仍然可以創建div網格,但將每個圖像設置爲具有適當偏移值的圖像(CSS)背景,以便每個都可以創建一個單獨的「拼圖」部分。

編輯:我忘了提及,可能已經有一個jQuery插件(如果不是很多的插件),做這種事情。我不知道具體的一個,但你可能喜歡做一些谷歌搜索。以上只是浮現在腦海的方式不是從頭開始編寫的第一件事...

編輯2:工作(那種)演示:http://jsfiddle.net/sEE8R/1/(這只是一些狡猾的代碼,我拼湊鬆散地基於上面的算法,而不是一個圖像,我用了一個紅色的div,它被隨機刪除的綠色div所覆蓋。)

+0

我認爲這會很好,但我擔心性能可能會成爲問題。 –

+0

@NateB - 我按照上面的編輯拼湊了一個非常粗糙的演示。性能問題出現在揭示的動畫中:通過'setInterval'一次刪除一個塊需要相當長的一段時間,在20x20的網格中有400個塊,儘管每個間隔刪除2到4個塊可以加速到我所說的是可以接受的水平。 – nnnnnn

1

使用原始圖像,就像它是一個CSS sprite,並以編程方式創建元素它是它的子集片。

或者,加載您的圖像,反覆使用drawImage()將其子部分繪製到HTML5畫布上,使用toDataURL()獲取字符串並在JS中爲此數據網址創建new Image

相關問題