canvas簡單的畫布動畫 - Kaiqisan
canvas簡單的畫布動畫
本質
高頻率地清除畫布,然後再繪製新的圖片,使之看起來就像一個動畫。
關鍵程式碼
fillRect()
: 看似是繪製矩形,實則是利用了它的方法和畫布是矩形這兩個特性來進行畫布的清除,清除上一次的全部內容以便於下一次的繪製。
原始碼
window.onload = () => {
let canvas = document.getElementById('demo')
let ctx = canvas.getContext('2d')
let flag = 1 // 每一幀旋轉角度(每重繪一次算一幀)
let a = 1 // 放大比例
let status = true // 判斷當前需要增大影像尺寸還是縮小影像尺寸
ctx.translate(500, 300) // 把座標中心移動到畫布中心,這裡的畫布長1000px,寬600px
let color = false // 決定內容是白底黑線還是黑底白線
let time = setInterval(() => {
ctx.fillStyle = color === true ? "#fff" : "#000"
ctx.fillRect(-500, -300, canvas.width, canvas.height)
// 判斷當前需要增大影像還是縮小影像
if (status === true) {
a = a + 0.01
} else {
a = a - 0.01
}
ctx.rotate(flag * Math.PI / 180)
// 繪製部分
ctx.strokeStyle = color === false ? "#fff" : "#000"
ctx.strokeRect(-100 * a , -100 * a, 200 * a, 200 * a)
ctx.beginPath()
ctx.strokeStyle = color === false ? "#fff" : "#000"
ctx.moveTo(0, 0)
ctx.lineTo(100, 100)
ctx.stroke()
ctx.beginPath()
ctx.strokeStyle = color === false ? "#fff" : "#000"
ctx.moveTo(0, 0)
ctx.lineTo(-100, 100)
ctx.stroke()
// 判斷是否達到最大的尺寸
if (a > 2) {
status = false
} else if (a < 1) {
status = true
}
// color = !color // 辣眼睛就註釋了
}, 12) // 重繪頻率
}
顯示效果
相關文章
- 使用canvas實現簡單動畫Canvas動畫
- canvas簡單動畫案例(圓圈閃爍漸變動畫)Canvas動畫
- canvas簡單畫板效果Canvas
- 瞭解canvas畫布Canvas
- Tkinter (03) 畫布部件 CanvasCanvas
- 如何抓取canvas畫布中的圖片Canvas
- 用canvas實現一個簡單的畫板Canvas
- canvas動畫心得Canvas動畫
- canvas水球動畫Canvas動畫
- JavaScript簡單的動畫效果JavaScript動畫
- 簡單的動畫 (numpy & PySimpleGUI)動畫GUI
- canvas畫布基本知識點總結Canvas
- 分享一個簡單的畫刷動畫效果:?️BrushEffect動畫
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- JavaScript 簡單動畫效果JavaScript動畫
- CSS 與 canvas 屬性設定畫布尺寸CSSCanvas
- CSS與canvas屬性設定畫布尺寸CSSCanvas
- 基於canvas的骨骼動畫Canvas動畫
- canvas繪製動畫的技巧Canvas動畫
- canvas畫素畫板Canvas
- canvas動畫特效 之 星空Canvas動畫特效
- canvas動畫教程-1 引言Canvas動畫
- Canvas 動畫初體驗Canvas動畫
- Flutter Animation(1)動畫的簡單使用Flutter動畫
- html5中canvas元素建立畫布介紹HTMLCanvas
- canvas學習筆記-2d畫布基礎Canvas筆記
- CSS和canvas標籤設定畫布尺寸區別CSSCanvas
- 【canvas】動畫原理の胡克定律Canvas動畫
- canvas之實現控制動畫Canvas動畫
- Canvas 動畫的效能優化實踐Canvas動畫優化
- Canvas 實現畫中畫動畫效果–網易娛樂年度盤點H5動畫解密Canvas動畫H5解密
- Canvas 實現畫中畫動畫效果--網易娛樂年度盤點H5動畫解密Canvas動畫H5解密
- 簡單的低開編輯器(三):實現元件畫布內拖拽元件
- 前端動畫效果實現的簡單比較前端動畫
- 封裝一個簡單的動畫函式封裝動畫函式
- 使用canvas繪製圓弧動畫Canvas動畫
- Canvas百分比動畫Canvas動畫
- 一次canvas動畫的大筆試Canvas動畫筆試