javascript - 在 HTML5 Canvas 元素内移动矩形(像素)区域的最快方法是什么

标签 javascript html canvas

我想实现 HTML5 canvas 元素内容的垂直滚动。我不想再次呈现整个内容。相反,我想将整个内容向下/向上移动,并且只渲染已滚动到 View 中的区域。

我试验了 getImageDataputImageData 函数,但在我的测试中,它们几乎和重新绘制整个场景一样慢。

// scroll 20px down
var data = ctx.getImageData(0, 0, width, height-20);
ctx.putImageData(0, 20);

在 Canvas 元素内复制矩形像素区域的最快方法是什么?

最佳答案

试试这个:

ctx.drawImage(ctx.canvas, 0, 0, width, height-20, 0, 20, width, height-20);

drawImage 可以采用 HTMLImageElementHTMLCanvasElementHTMLVideoElement 作为第一个参数。

关于javascript - 在 HTML5 Canvas 元素内移动矩形(像素)区域的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2041148/

相关文章:

javascript - 刷新后如何留在选定的选项卡上?

javascript - React Native 导航 TopBar 图标未显示

javascript - HTML5 Canvas 随着时间的推移而抖动

html - 带有单选按钮的表格不起作用

jquery - 使用 jQuery 创建时,图像会拉伸(stretch)到 HTML Canvas

Javascript - 无法调整帧率 - requestanimationframe

javascript - jQuery Time Ago 与 Twitter 插件

javascript - 移动 Chrome 浏览器不显示我的 div 或结果数据

javascript - 使用 jquery 将 textarea 中的文本添加到表中

php - 如何在将 HTML 模板转换为 wordpress 主题时链接 style.css 文件