javascript - FabricJS - 使用与窗口相同的滚动来滚动 Canvas

标签 javascript html canvas html5-canvas fabricjs

我正在创建一个应用程序,它使用 Html2canvas 库来截取正文的屏幕截图。截取屏幕截图后,我使用 FabricJS 框架将其显示在 Canvas 组件中。该 Canvas 将具有与主体相同的高度和宽度。我的问题是我需要滚动 Canvas ,就像在页面中一样。我一直在尝试使用类似这样的代码 http://jsfiddle.net/Kienz/f3u5r/但它实际上向包含我的 Canvas 的 div 添加了一个滚动条,但我需要使用与窗口相同的 div,否则我将有两个滚动条。

这是我的 Canvas 的代码

<div style="height: 100%; width: 100%" id="canvasContainer">
    <canvas id="fbcanvas" style="height: 100%; width: 100%"; position:relative;></canvas>
</div>


#canvasContainer {
display: none;
z-index: 1000000;
overflow: auto;
}

谢谢

编辑:

这就是现在的样子,

enter image description here

因此,当我使用 Canvas 滚动滚动时,我会滚动 Canvas 。当我滚动窗口的 Canvas 时,我会滚动页面。我需要使用窗口中的滚动,但要滚动 Canvas ,而不是窗口。

最佳答案

不要把事情搞得太复杂。

无论如何,您都不应该为 Canvas 添加基于百分比的尺寸。从上面的照片来看,您的 Canvas 似乎具有固定尺寸(基于通过fabricjs打印在其上的任何内容)。

如果您的 Canvas (或任何 block 元素)大于屏幕尺寸,浏览器将添加滚动条。这就是它的工作。

摆脱所有样式,让浏览器完成它的工作。

<div id="canvasContainer">
    <canvas id="fbcanvas"></canvas>
</div>

-

#canvasContainer { /* nothing */ }
#fbcanvas { /* nothing */ }

查看实际效果:http://jsfiddle.net/egb1je6m/1/

JSFiddle screenshot

关于javascript - FabricJS - 使用与窗口相同的滚动来滚动 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618917/

相关文章:

javascript - 正则表达式匹配 "everything but"与 webpack 的 kebab-case

javascript - 如何找出容器元素内的文本位置?

javascript - 在 Canvas 上绘制多边形形状并允许在其上显示工具提示

javascript - EPUB3 Reflowable-Fixed Layout 动态调整文本到 Div 的大小

Javafx:用鼠标在ImageView上绘图

jquery - HTML5 Canvas 100% 视口(viewport)宽度高度?

javascript - HTML5 Canvas 混合模式

javascript - 两次按键不同功能运行

javascript - 在图像之间淡入淡出

html - 尝试调整表中列表中▲▼符号的大小,但字体大小无效