Tries svg.pan-zoom in a notebook.
from jyquickhelper import RenderJS
css = None
libs = ['http://www.xavierdupre.fr/js/svg/svg.min.js',
'http://www.xavierdupre.fr/js/svgpanzoom/svg.draggy.js',
'http://www.xavierdupre.fr/js/svgpanzoom/svg.pan-zoom.min.js']
script = """
var divElement = document.querySelector('#__ID__');
divElement.innerHTML = '<svg id="idrep">' +
'<rect x="10" y="10" height="100" width="100" ' +
'style="stroke:#ff0000; fill: #00ffff"/>' +
'</svg>';
var can = new SVG("idrep").size('600', '300');
var nodes = can.group();
var g1 = nodes.group().translate(100, 100).draggy();
g1.circle(80).fill("#C2185B");
nodes.panZoom();
"""
jr = RenderJS(script, css=css, libs=libs, style="width:600px;height:300px;border-style:solid;")
jr
The ball can be moved, not zoomed. The notebook is probably catching this event.
print(jr._repr_html_())
<div id="M86cd438e37bf4a66906ae66439babee0-cont"><div id="M86cd438e37bf4a66906ae66439babee0" style="width:600px;height:300px;border-style:solid;"></div></div> <script> require(['http://www.xavierdupre.fr/js/svg/svg.min.js','http://www.xavierdupre.fr/js/svgpanzoom/svg.draggy.js','http://www.xavierdupre.fr/js/svgpanzoom/svg.pan-zoom.min.js'], function() { var divElement = document.querySelector('#M86cd438e37bf4a66906ae66439babee0'); divElement.innerHTML = '<svg id="idrep">' + '<rect x="10" y="10" height="100" width="100" ' + 'style="stroke:#ff0000; fill: #00ffff"/>' + '</svg>'; var can = new SVG("idrep").size('600', '300'); var nodes = can.group(); var g1 = nodes.group().translate(100, 100).draggy(); g1.circle(80).fill("#C2185B"); nodes.panZoom(); }); </script>