[grab and drag the pads]
scripted-svg
Javascript animated SVG graphics
Welcome to the Wonderful World of embedded javascript
Example of embedded javascript in a SVG image. Coding SVG is like coding HTML canvas.
Note that the script is only executed if the SVG is viewed directly in a javascript enabled player (browser) or embedded in HTML with the <embed> element.
The inspiration to create this was to add sandboxed javascript to github/gitlab/gitea README.md files.
However, only after creation it turns out that it does not work with <img> elements and README.md does not allow <embed>.
Parked here for historics and inspirations.
Demonstration
The SVG is interactive. You can drag the black pads to change the curve.
You need to host the SVG image on GitHub-pages.
Using the repository version (raw.githubusercontent.com) will not work as GitHub sends the HTTP header "Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; sandbox" which disables the javascript.
Standard README.md links do not open in a new window and ![]() images miss resizing abilities.
Some suggested ways of using a SVG image (size is 500x500):
Inline image (with javascript disabled) wrapped in whatever you pleases
<img src="scripted-svg-500x500.svg" width="200" height="200" alt="SVC">
Inline image (with javascript enabled) wrapped in whatever you pleases
<embed src="https://xyzzy.github.io/scripted-svg/scripted-svg-500x500.svg" type="image/svg+xml">
NOTE: Will only work in HTML as README.md removes <embed> tags, Otherwise: SVG is interactive, you can move the black pads to change the curve.
NOTE: Browsers have a broken implementation as they do not scale mouse coordinates.
Wrap the SVG with HTML to apply styling
<a href="https://xyzzy.github.io/scripted-svg/scripted-svg-500x500.svg" target="_blank"><img src="scripted-svg-500x500.svg" width="200" height="200" alt="SVC"></a>
NOTE: The SVG when opened will full-screen.
Source code
Grab one of the tarballs at https://github.com/xyzzy/scripted-svg/releases or checkout the latest code:
git clone https://github.com/xyzzy/scripted-svg.git
Versioning
Using SemVer for versioning. For the versions available, see the tags on this repository.
License
Everything withing <script> and </script> is part of ccbc and is licensed under the GNU Affero General Public License v3 - see the LICENSE.txt file for details.
Everything else (the important stuff) is MIT.
Acknowledgments
- W3C for their amazing work on SMIL and the browsers implementing it.
- Originating project https://github.com/RockingShip/ccbc