diff options
Diffstat (limited to 'blockly/demos/resizable/overlay.html')
-rw-r--r-- | blockly/demos/resizable/overlay.html | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/blockly/demos/resizable/overlay.html b/blockly/demos/resizable/overlay.html new file mode 100644 index 0000000..2d9f41f --- /dev/null +++ b/blockly/demos/resizable/overlay.html @@ -0,0 +1,93 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Blockly Demo: Resizable Blockly (Part 2)</title> + <script src="../../blockly_compressed.js"></script> + <script src="../../blocks_compressed.js"></script> + <script src="../../msg/js/en.js"></script> + <style> + html, body { + height: 100%; + margin: 0; + } + body { + background-color: #fff; + font-family: sans-serif; + overflow: hidden; + } + h1 { + font-weight: normal; + font-size: 140%; + } + table { + height: 100%; + width: 100%; + } + #blocklyArea { + height: 99%; + } + </style> +</head> +<body> + <table> + <tr> + <td> + <h1><a href="https://developers.google.com/blockly/">Blockly</a> > + <a href="../index.html">Demos</a> > Resizable Blockly (Part 2)</h1> + + <p> + Once an <a href="index.html">area is defined</a>, Blockly can be + injected and positioned over the area. + A resize handler keeps it in position as the page changes. + </p> + + <p>→ More info on <a href="https://developers.google.com/blockly/guides/configure/web/resizable">injecting resizable Blockly</a>…</p> + </td> + </tr> + <tr> + <td id="blocklyArea"> + </td> + </tr> + </table> + + <div id="blocklyDiv" style="position: absolute"></div> + + <xml id="toolbox" style="display: none"> + <block type="controls_if"></block> + <block type="logic_compare"></block> + <block type="controls_repeat_ext"></block> + <block type="math_number"></block> + <block type="math_arithmetic"></block> + <block type="text"></block> + <block type="text_print"></block> + </xml> + + <script> + var blocklyArea = document.getElementById('blocklyArea'); + var blocklyDiv = document.getElementById('blocklyDiv'); + var workspace = Blockly.inject(blocklyDiv, + {media: '../../media/', + toolbox: document.getElementById('toolbox')}); + var onresize = function(e) { + // Compute the absolute coordinates and dimensions of blocklyArea. + var element = blocklyArea; + var x = 0; + var y = 0; + do { + x += element.offsetLeft; + y += element.offsetTop; + element = element.offsetParent; + } while (element); + // Position blocklyDiv over blocklyArea. + blocklyDiv.style.left = x + 'px'; + blocklyDiv.style.top = y + 'px'; + blocklyDiv.style.width = blocklyArea.offsetWidth + 'px'; + blocklyDiv.style.height = blocklyArea.offsetHeight + 'px'; + }; + window.addEventListener('resize', onresize, false); + onresize(); + Blockly.svgResize(workspace); + </script> +</body> +</html> |