過使用tldraw和gpt-4-vision API,根據用戶繪制的線框生成HTML,在Next.js框架下運行,使用OpenAI API密鑰訪問GPT-4 Vision API
官網:https://www.draw-a-ui.com/
Github: https://github.com/SawyerHood/draw-a-ui
周在給學生講授JavaScript課程中setInterval方法時,想到了我們在網上看到的各類GIF動圖比較有意思,就將其引入到教學中,教學內容設計如果通過HTML5與JavaScript實現網頁類似GIF效果的動態圖。于是在網上搜集了部分gif格式動圖,將每一個Gif動圖分解為一組jpg格式圖片,再采用setInterval與html5 Canvas進行動畫的實現。通過學習可以讓學生進一步了解canvas動畫實現的過程與原理。并將其發布到頭條,也希望對有興趣的初學者了解HTML5 Canvas等有所幫助。圖片分組圖片素材如下:
素材一
實現動畫的素材我們已經給出,主要通過gif動圖導出一組圖片,下面對html5動畫實現過程進行簡單說明。
實現其動畫的基本思路是通過HTML5提供的canvas元素進行圖片的繪制與展示,借助setInterval方法實現間隔指定時間調用新的圖片實現重新繪圖。其中繪圖主要使用drawImage方法進行繪圖,最終通過圖片依次重繪實現動畫效果。具體實現過程如下:
在頁面body部分添加Canva標簽,設置其id屬性為canv,寬度為600,高度為400,編寫代碼描述如下圖:
添加畫布元素
canvas瀏覽效果
使用Canvas借助JavaScript提供的drawImage方法進行繪圖,需要提供要繪制的圖片資源即繪圖的坐標位置。該方法原型如下:
drawImage方法原型
因此我們需要加載圖片資源,本例由于需要調用多個img實現定時不同圖片的繪制,因此我們可以使用數組存儲所加載的圖片資源。本例圖片數量為14,因此我們數組長度為14。使用素組存儲圖片實現代碼如下:
加載圖片資源代碼
本例設計在頁面加載時自動播放動畫,因此需要在JavaScript腳本中添加頁面onload事件,在事件中編寫繪圖相關代碼,主要代碼包括獲取畫布canva與實例化繪圖對象context。部分代碼描述如下:
onload事件及繪圖初始化
使用setInterval方法實現動畫主要需要定義回調函數與回調函數觸發執行的周期,本例中我們使用匿名函數作為回調函數,觸發周期設置為100毫秒。setInterval函數定義如下:
setInterval函數
在定義完函數之后可在其匿名函數函數體部分寫入繪圖方法dramImage(),實現周期調用不同圖片資源進行繪圖,最終展示出動畫效果。為了保證循環調用14張圖片,我們需要設置一計數全局變量i,由于我們圖片采用數組存儲,下標為數組,且從0-13進行編號,因此當計數值小于13時自動+1,指向下一數組下標,當為13時,設置計數值為0,回到數組第一元素,最終實現數組訪問下標的循環。setInterval實現完整代碼如下:
setInterval完整代碼
HTML動畫效果展示
本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯系作者,共同探討。期待大家關注!如需案例完整代碼請關注并私信,往期前端設計文章鏈接如下:
rawio是一款強大的圖表繪制軟件,支持在線云端版本以及windows, macOS, linux安裝版。 如果想在線直接使用,則直接輸入網址draw.io或者使用drawon(桌案), drawon.cn內部完整的集成了drawio的所有功能,并實現了云端存儲,以及在線共創,分享,協作的功能。
看板能夠把大項目,大工程拆解成一個個的小的任務,你也可以設置優先級,跟進他們的完成情況。 通過看板可以在項目協作過程中獲得更多的好處。看板能夠幫助每個人可視化工作流, 項目的狀態,以及當前的工作負載。
看板是一種方法論, 或者一個系統, 通常被用于項目管理,產品經理,敏捷開發,或者系統開發工程師,設計師和內容營銷人員。 幾乎所有的商業領域都會使用這個方法去跟進工作, 識別瓶頸, 改善過程。
你可以使用不同的方式,畫一個遠程的看板,然后一起去協作——你也不必使用簡單的看板模板,如下所展示。 你可以使用簡單的粘性貼紙類的圖形,使用不同的顏色的矩形, 列舉元素, 實體表格圖形——以你便捷舒服的方式去使用。
然而, 在drawio或者drawon中,簡單的看板模板在繪制中。 將根據任務所在的列(泳道或狀態)自動為任務上色,并相應地更新標簽文本。
注意,你不能限定看板只有三列數據,列可以動態根據需求添加。 模板使用泳道(列)自定義的圖形屬性去設置標簽文本和泳道的顏色。
刪除任務:選擇任務, 按下Delete偶然 Backspace鍵
團隊可以遠程的工作,并在看板上進行協作。 增加外部的網站連接,或者文檔, 或者增加連接到其他圖表頁面, 表決并設置優先級。
刪除列: 選擇列(泳道), 點擊Delete或者Backspace
在列上改變任務的顏色
任務的顏色會去匹配泳道的填充色,
在任務標簽上改變狀態文本
如上面所屬, 狀態文字在簡單的看板上是一個占位符。 當你在一個任務上選擇文本, 你可以看到文字status會被百分比符號包圍: %status%
在泳道的自定義屬性中, 文本會被代替。
注意: 列的標題不會被自動設置, 選擇列,開始輸入文字覆蓋列的標題。
之后的文章中, 你將會學習更多的自定義屬性和占位符。
有很多不同的drawio的集成,使用這些工具集成,你可以使用看板。 drawon.cn中集成了drawio。
在你選擇工作的地方嵌入你的看板: HTML頁面, VSCode和GitHub項目。 谷歌Workplace. Microsoft Office, Atlassian Confluence, Notion pages , 國內的drawon。這些都可以使用drawio的看板。
如果你想把看板或者drawio嵌入到其他應用程序中。 你可以閱讀相關的文章。
使用最小化或者草稿編輯主題, 會默認去掉網格, 這讓看板感覺更像一個便利貼。 如下圖所示
關于更多可以在drawon中使用。打開drawon.cn使用。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。