Chapter 15. Working with Media
Pretty pictures. Animations. Cool videos. Sound!
The web is a richer place through the availability of many media types. Our old friends SVG and Canvas can be used for complex animations, charts, and graphs. Added to them are the video and audio elements included in HTML5, and the near-future potential of 3D graphics.
Best of all, none of these require any kind of proprietary plug-inâtheyâre all integrated with all your browser clients, including those on your smartphones, tablets, and computers.
Adding JavaScript to SVG
Problem
You want to add JavaScript to an SVG file or element.
Solution
JavaScript in SVG is included in script
elements, just as with HTML, except with the addition of CDATA markup surrounding the script (Example 15-1). DOM methods are also available for working with the SVG elements.
Example 15-1. Demonstration of JavaScript within an SVG file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"600"
height=
"600"
>
<script
type=
"text/ecmascript"
>
<!
[
CDATA
[
// set element onclick event handler
window
.
onload
=
function
()
{
const
square
=
document
.
getElementById
(
'square'
);
// onclick event handler, change circle radius
square
.
onclick
=
function
click
()
{
const
color
=
this
.
getAttribute
(
'fill'
);
if
(
color
===
'#ff0000'
)
{
this
.
setAttribute
(
'fill'
,
'#0000ff'
);
}
else
{
this
.
setAttribute
(
'fill'
,
'#ff0000'
);
}
};
};
]]
>
</script>
<rect ...
Get JavaScript Cookbook, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.