【发布时间】:2017-05-05 06:04:14
【问题描述】:
我想在 jupyter 单元格中嵌入一个外部 .svg,然后能够平移和缩放。具体来说,我想使用很棒的 svg-pan-zoom 库。考虑到类似的扩展,例如传单和地图框,这似乎是可能的。
尝试 svg-pan-zoom 中的示例,得到以下结果:
%%HTML
<html>
<body>
<h1>Demo for svg-pan-zoom: SVG in HTML 'object' element</h1>
<object id="demo-tiger" type="image/svg+xml" data="https://cdn.rawgit.com/ariutta/svg-pan-zoom/master/demo/tiger.svg" style="width: 500px; height: 500px; border:1px solid black; ">Your browser does not support SVG</object>
<script>
require.config({
paths: {
panzoom: '//cdn.rawgit.com/ariutta/svg-pan-zoom/master/dist/svg-pan-zoom'
}
});
require(['panzoom'], function(panzoom) {
console.log("Loaded :)");
var s = document.getElementById('demo-tiger')
s.onload = function(panzoom){
console.log('loaded')
panzoom.svgPanZoom('#demo-tiger', {
zoomEnabled: true,
controlIconsEnabled: true
});
}
});
</script>
</body>
</html>
单元格渲染图像,但绝不渲染全景缩放功能。经过许多不同的方法,它仍然无法将svgPanZoom 识别为函数。
我也尝试将其加载到/nbextensions 目录中。这也不起作用。
我对 JS 或 DOM 没有经验,因此欢迎提出任何建议。
【问题讨论】:
-
我怀疑问题可能是您在对象标签上运行 panzoom。我“认为”您需要在 svg 元素上使用它,这意味着通过 contentDocument 访问它,例如 s.contentDocument.getElementById('the svg id') 将引用“对象”中的文档。可能有助于将其隔离在 jsfiddle 或其他东西上。
-
问题似乎是 svg-pan-zoom 没有加载到 Jupyter 单元格中——尽管它只是一个 html 页面。我可能不得不找一些 Jupyter 专家来看看。谢谢。
-
@jbeach 你最终找到那个了吗?