view client/digitallibrary/jquery/svg/svgBasics.html @ 762:aab01da232ef jquery

small preparations for SVG
author hertzhaft
date Thu, 10 Feb 2011 09:20:56 +0100
parents ccf67eaf97ee
children 6d7c51e4724b
line wrap: on
line source


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
     "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <title>jQuery SVG Basics</title>
        <style type="text/css">
@import "jquery.svg.css";

#svgbasics { position: absolute; border: 1px solid blue; }
#img img {width: 400px; }

        </style>
        <script type="text/javascript" src="../dlGeometry.js"></script>
        <script type="text/javascript" src="../jquery-1.4.4.js"></script>
        <script type="text/javascript" src="jquery.svg.js"></script>
        <script type="text/javascript">
$(function() {
    var geom = dlGeometry();
    var svg = $('#svgbasics');
    var $div = $('#img img');
    var divrect = geom.rectangle($div);
    divrect.addPosition({x: -1, y: -1}).adjustDiv(svg);
    svg.svg({onLoad: drawInitial});
	$('button').click(drawShape);
});

function drawInitial(svg) {
	svg.circle(75, 75, 50, {fill: 'none', stroke: 'red', 'stroke-width': 3});
	var g = svg.group({stroke: 'black', 'stroke-width': 2});
	svg.line(g, 15, 75, 135, 75);
	svg.line(g, 75, 15, 75, 135);
	svg.configure({viewPort: '0 0 100 100', overflow: 'visible' }, false);
}

var colours = ['purple', 'red', 'orange', 'yellow', 'lime', 'green', 'blue', 'navy', 'black'];

function drawShape() {
	var shape = this.id;
	var svg = $('#svgbasics').svg('get');
	if (shape == 'rect') {
		svg.rect(random(300), random(200), random(100) + 100, random(100) + 100,
			{fill: colours[random(9)], stroke: colours[random(9)],
			'stroke-width': random(5) + 1});
	}
	else if (shape == 'line') {
		svg.line(random(400), random(300), random(400), random(300),
			{stroke: colours[random(9)], 'stroke-width': random(5) + 1});
	}
	else if (shape == 'circle') {
		svg.circle(random(300) + 50, random(200) + 50, random(80) + 20,
			{fill: colours[random(9)], stroke: colours[random(9)],
			'stroke-width': random(5) + 1});
	}
	else if (shape == 'ellipse') {
		svg.ellipse(random(300) + 50, random(200) + 50, random(80) + 20, random(80) + 20,
			{fill: colours[random(9)], stroke: colours[random(9)],
			'stroke-width': random(5) + 1});
	}
	else if (shape == 'clear') {
		svg.clear();
	}
	else if (shape == 'zoom') {
		svg.clear();
	}
	
}

function random(range) {
	return Math.floor(Math.random() * range);
}
</script>
    </head>
    <body>
        <h1>jQuery SVG</h1>
        <div id="img">
            <img src="peterskuppel.jpg" />
        </div>
        <div id="svgbasics"></div>
        <p>
            <button id="rect">Add rectangle</button>
            <button id="line">Add line</button>
            <button id="circle">Add circle</button>
            <button id="ellipse">Add ellipse</button>
            <button id="zoom">Zoom</button>
            <button id="clear">Clear</button>
        </p>
    </body>
</html>