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
- Tkinter (03) 畫布部件 CanvasCanvas
- canvas畫布效果程式碼Canvas
- html5畫布canvasHTMLCanvas
- 使用canvas實現簡單動畫Canvas動畫
- 如何抓取canvas畫布中的圖片Canvas
- canvas簡單動畫案例(圓圈閃爍漸變動畫)Canvas動畫
- 用canvas實現一個簡單的畫板Canvas
- canvas畫布基本知識點總結Canvas
- 分享一個簡單的畫刷動畫效果:?️BrushEffect動畫
- CSS與canvas屬性設定畫布尺寸CSSCanvas
- CSS 與 canvas 屬性設定畫布尺寸CSSCanvas
- 基於canvas畫布的兩個炫酷效果展示Canvas
- canvas實現的簡單畫板效果程式碼例項Canvas
- html5中canvas元素建立畫布介紹HTMLCanvas
- canvas學習筆記-2d畫布基礎Canvas筆記
- CSS和canvas標籤設定畫布尺寸區別CSSCanvas
- 簡單的低開編輯器(三):實現元件畫布內拖拽元件
- Canvas 實現畫中畫動畫效果--網易娛樂年度盤點H5動畫解密Canvas動畫H5解密
- Canvas 實現畫中畫動畫效果–網易娛樂年度盤點H5動畫解密Canvas動畫H5解密
- HTML5 Canvas(畫布)實戰程式設計初級篇:基本介紹和基礎畫布元素HTMLCanvas程式設計
- 炒雞簡單的canvas粒子Canvas
- 簡單的 canvas 翻角效果Canvas
- 簡單的動畫 (numpy & PySimpleGUI)動畫GUI
- JavaScript簡單的動畫效果JavaScript動畫
- SVG簡單動畫SVG動畫
- canvas畫素畫板Canvas
- HTML5畫布canvas隨機生成圓形和正方形HTMLCanvas隨機
- canvas簡單入門(2)Canvas
- 簡單的SVG線條動畫SVG動畫
- canvas實現簡答動畫張閉嘴效果Canvas動畫
- canvas水球動畫Canvas動畫
- canvas動畫心得Canvas動畫
- JavaScript 簡單動畫效果JavaScript動畫
- 實現畫布的效果
- css設定canvas畫布尺寸與width和height設定的區別CSSCanvas
- canvas的簡單圓形進度條Canvas