Javascript 如何将滚动条添加到HTML5画布中的矩形中?

Javascript 如何将滚动条添加到HTML5画布中的矩形中?,javascript,css,html,canvas,Javascript,Css,Html,Canvas,在HTML5画布中,有没有标准的方法将滚动条添加到矩形中?我想在矩形中添加一个垂直滚动条,该矩形包含一个比画布长的项目列表。有做这种事情的图书馆吗?或者,这是我必须自己解决的问题。不幸的是,没有标准方法。画布只是表示位图(图像)。只有像素,外部绘制的所有内容都被剪裁 要添加滚动条,您必须自己创建一个滚动条。还有一个技巧是将画布放在div中并使用div的滚动条,但不建议这样做,因为这样会消耗更多内存 滚动条并不难创建;查看一些现有代码,了解它们是如何生成的,并尝试采用它们在画布上使用。你可以通过谷

在HTML5画布中,有没有标准的方法将滚动条添加到矩形中?我想在矩形中添加一个垂直滚动条,该矩形包含一个比画布长的项目列表。有做这种事情的图书馆吗?或者,这是我必须自己解决的问题。

不幸的是,没有标准方法。画布只是表示位图(图像)。只有像素,外部绘制的所有内容都被剪裁

要添加滚动条,您必须自己创建一个滚动条。还有一个技巧是将画布放在div中并使用div的滚动条,但不建议这样做,因为这样会消耗更多内存

滚动条并不难创建;查看一些现有代码,了解它们是如何生成的,并尝试采用它们在画布上使用。你可以通过谷歌很容易地找到一些(你也可以这样使用)

基本步骤是:

➔ 计算整个页面的总任意大小(现在请坚持使用高度)
➔ 计算画布的实际高度与任意高度之间的比率
➔ 将高度计算为相对于总高度的视口高度

后者用于在滚动条容器内绘制旋钮。当您移动旋钮时,每个像素代表您在第二步中计算的任意高度的特定大小


这是基础-还有其他一些事情,比如当任意高度小于实际高度时,滚动条被隐藏或旋钮填满整个空间,您必须在计算中减去旋钮的高度,以便将其移动到底部,它将表示任意高度的底部。

矩形是填充整个画布还是画布上的其他项目填充了画布的一部分?它是画布上的其他项目的一部分。这会使它更复杂一些很复杂,但仍然很容易解决。看起来Ken正在给你一个答案…他做得很好!如果你还有问题,就在这里给我打个@markE评论。