将 Wrapper+Canvas+Div 匹配到图像的大小

我在 Google Apps 脚本中使用 heatmap.js,我正在尝试调整热图画布的大小(我可以在其中实际绘制点)以适合图像。如何更改 javascript 或样式以使其正常工作?

代码:https ://jsfiddle.net/nateomardavis/51h2guL9/

  • wrapper黑色边框。

  • 热图div有蓝色边框。

  • canvas一个红色边框。

它应该如何工作:我应该能够在图像上的任何位置标记热图。包装器、热图 div 和画布都应根据图像的大小调整大小。

目前如何工作:我只能在蓝/黑边框内标记热图。我的 javascript 调整画布大小以适应图像,但不调整热图的边界。

我尝试过的内容:您可以在小提琴中看到我是如何尝试更改 javascript 调整大小的(第 88-90 行)。我还考虑过使用图像作为div 的大小,但大小background-image不是heatmap正确,我希望能够将热图和图像保存为一层(用于打印/保存)。我还尝试更改图像的大小(第 101 行),但任何超过 55% 的东西都会切断图像。

下面的屏幕截图仅供参考,但完整的工作代码在小提琴中。我把它全部放在 HTML 下,因为这就是它在 Google Apps 脚本中的工作方式。

http://img2.mukewang.com/629c16620001e56123891245.jpg

达令说
浏览 87回答 1
1回答

梦里花落0921

经过大量的修补,我能够弄清楚:https ://jsfiddle.net/nateomardavis/p1kwrhmv我用CSSimg给了它一个。background-image然后我将热图图层设置为relative,并将图像图层设置为absolute使用解决方案HERE。最后,我使用HERE概述的方法设置图像层 css 。.heatmap {  background-size: contain;  background-repeat: no-repeat;  width: 100%;  height: 300%; /*if the image is bigger than screen, this is needed */  position: relative;}.backgroundIMG {  background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Soccer_Field_Transparant.svg/1200px-Soccer_Field_Transparant.svg.png');  background-size: contain;  background-repeat: no-repeat;  position: absolute;  width: 100%;  height: 0;  padding-top: 151.33%;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript