raphael/reference.html

517 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Raphaël Reference</title>
<meta name="author" content="Dmitry Baranovskiy">
<meta name="description" content="Vector Graphics JavaScript™ Library">
<link rel="stylesheet" href="raphael.css" type="text/css" charset="utf-8" media="screen,projection">
<link rel="stylesheet" type="text/css" media="print" href="/dmitry-print.css">
<link rel="shortcut icon" href="/favicon16.png" type="image/x-icon">
<link rel="apple-touch-icon" href="/favicon.png">
<script src="../jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="../dmitry.js" type="text/javascript" charset="utf-8"></script>
</head>
<body class="raphael" id="raphael.dmitry.baranovskiy.com">
<div id="header">
<a href="http://twitter.com/statuses/user_timeline/17180567.atom" id="rss" name="rss">rss</a>
<h1>
Raphaël—JavaScript Library
</h1>
</div>
<div id="content">
<div>
<div>
<div id="column-1">
<h2>Main Function</h2>
<h3 id="Raphael">
Raphael
</h3>
<p>
Function that creates canvas for future drawing.
</p>
<h4>Parameters</h4>
<ol>
<li>container <em>HTMLElement</em> or <em>string</em></li>
<li>width <em>number</em></li>
<li>height <em>number</em></li>
</ol>
<p>or</p>
<ol>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
<li>width <em>number</em></li>
<li>height <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>
// Creates canvas 320&nbsp;×&nbsp;200 at 10, 50</code>
<code>var paper = Raphael(10, 50, 320, 200);</code>
<code>var paper = Raphael(document.getElementById("notepad"), 320, 200);</code>
<code>var paper = Raphael("notepad", 320, 200);</code></pre>
<h2 id="Element">
Elements generic methods
</h2>
<p>
Each object created on the canvas share the same generic methods:
</p>
<h3 id="node">
node
</h3>
<p>
Gives you reference to DOM object, so you can assign event handlers or just randomly mess around.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.node.onclick = function () { c.attr("fill", "red"); };</code></pre>
<h3 id="rotate">
rotate
</h3>
<p>
Rotates element by given degree around its center.
</p>
<h4>Parameters</h4>
<ol>
<li>degree <em>number</em> Degree of rotation (0 360°)</li>
<li>isAbsolute <em>boolean</em> [optional] Will rotation be relative or absolute</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.rotate(45);</code></pre>
<h3 id="translate">
translate
</h3>
<p>
Moves element around the canvas by given dimensions.
</p>
<h4>Parameters</h4>
<ol>
<li>dx <em>number</em> Pixels of translation by X</li>
<li>dy <em>number</em> Pixels of translation by Y</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.translate(10, 10);</code></pre>
<h3 id="scale">
scale
</h3>
<p>
Scales element by given amount of times.
</p>
<h4>Parameters</h4>
<ol>
<li>Xtimes <em>number</em></li>
<li>Ytimes <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.scale(1.5, 1.5);</code></pre>
<h3 id="attr">
attr
</h3>
<p>
Sets attributes of elements.
</p>
<h4>Parameters</h4>
<ol>
<li>params <em>object</em></li>
</ol>
<p>or</p>
<ol>
<li>attributeName <em>string</em></li>
<li>value <em>string</em></li>
</ol>
<h4>Possible parameters</h4>
<ul>
<li>cx <em>number</em></li>
<li>cy <em>number</em></li>
<li>dasharray <em>string</em> [“-”, “.”, “-.”, “-..”, “. ”, “- ”, “--”, “- .”, “--.”, “--..”]</li>
<li>fill <em>colour</em></li>
<li>fill-opacity <em>number</em></li>
<li>font <em>string</em></li>
<li>font-family <em>string</em></li>
<li>font-size <em>number</em></li>
<li>font-weight <em>string</em></li>
<li>gradient <em>object</em></li>
<li>height <em>number</em></li>
<li>opacity <em>number</em></li>
<li>path <em>pathString</em></li>
<li>r <em>number</em></li>
<li>rotation <em>number</em></li>
<li>rx <em>number</em></li>
<li>ry <em>number</em></li>
<li>scale <em>CSV</em></li>
<li>stroke <em>colour</em></li>
<li>stroke-linecap <em>string</em> [“butt”, “square”, “round”, “miter”]</li>
<li>stroke-linejoin <em>string</em> [“butt”, “square”, “round”, “miter”]</li>
<li>stroke-miterlimit <em>number</em></li>
<li>stroke-opacity <em>number</em></li>
<li>stroke-width <em>number</em></li>
<li>translation <em>CSV</em></li>
<li>width <em>number</em></li>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
</ul>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.attr("fill", "black");</code>
<code>c.attr({fill: "#000", stroke: "#f00", opacity: 0.5});</code></pre>
<h3 id="animate">
animate
</h3>
<p>
Linearly changes attribute from current to specified in given amount of milliseconds.
</p>
<h4>Parameters</h4>
<ol>
<li>newAttrs <em>object</em></li>
<li>ms <em>number</em></li>
<li>callback <em>function</em> [optional]</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.animate({cx: 20, r: 20}, 2000);</code></pre>
<h3 id="getBBox">
getBBox
</h3>
<p>
Returns dimensions of given element.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>var width = c.getBBox().width;</code></pre>
<h3 id="toFront">
toFront
</h3>
<p>
Moves element to front in hierarchy.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.toFront();</code></pre>
<h3 id="toBack">
toBack
</h3>
<p>
Moves element to back in hierarchy.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
<code>c.toBack();</code></pre>
<h2>Graphic Primitives</h2>
<h3 id="circle">
circle
</h3>
<p>
Creates circle.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em> X coordinate of the centre</li>
<li>y <em>number</em> Y coordinate of the centre</li>
<li>r <em>number</em> radius</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code></pre>
<h3 id="rect">
rect
</h3>
<p>
Creates rectangle.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em> X coordinate of top left corner</li>
<li>y <em>number</em> Y coordinate of top left corner</li>
<li>width <em>number</em></li>
<li>height <em>number</em></li>
<li>r <em>number</em> [optional] radius for rounded corners, default is 0</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>// regular rectangle</code>
<code>var c = paper.rect(10, 10, 10, 10);</code>
<code>// rounded rectangle</code>
<code>var c = paper.rect(10, 10, 100, 50, 10);</code></pre>
<h3 id="ellipse">
ellipse
</h3>
<p>
Creates an ellipse.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em> X coordinate of the centre</li>
<li>y <em>number</em> X coordinate of the centre</li>
<li>rx <em>number</em> Horisontal radius</li>
<li>ry <em>number</em> Vertical radius</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.ellipse(100, 100, 30, 40);</code></pre>
<h3 id="image">
image
</h3>
<p>
Embeds an image in SVG/VML area.
</p>
<h4>Parameters</h4>
<ol>
<li>src <em>string</em></li>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
<li>width <em>number</em></li>
<li>height <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.image("apple.png", 10, 10, 100, 100);</code></pre>
<h3 id="path">
path
</h3>
<p>
Initialise path drawing. In general case this function returns empty path object. To draw path use built in methods like <code>lineTo</code> and <code>curveTo</code>.
</p>
<h4>Parameters</h4>
<ol>
<li>params <em>object</em> Similar to object for <code><a href="#attr">attr</a></code> method</li>
<li>pathString <em>string</em> [optional] path in SVG path string format. See SVG documentation.</li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
<h2>Path Methods</h2>
<h3 id="absolutely">
absolutely
</h3>
<p>
Sets trigger to count all following units as absolute ones, unless said otherwise. [<em>on by default</em>]
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).absolutely()
.moveTo(10, 10).lineTo(50, 50);</code></pre>
<h3 id="relatively">
relatively
</h3>
<p>
Sets trigger to count all following units as relative ones, unless said otherwise.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).relatively()
.moveTo(10, 10).lineTo(50, 50);</code></pre>
<h3 id="moveTo">
moveTo
</h3>
<p>
Moves drawing point to given coordinates.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
<h3 id="lineTo">
lineTo
</h3>
<p>
Draws straight line to given coordinates.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
<h3 id="cplineTo">
cplineTo
</h3>
<p>
Draws curved line to given coordinates. Line will have horizontal anchors on start and on finish.
</p>
<h4>Parameters</h4>
<ol>
<li>x <em>number</em></li>
<li>y <em>number</em></li>
<li>width <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).cplineTo(50, 50);</code></pre>
<h3 id="curveTo">
curveTo
</h3>
<p>
Draws bicubic curve to given coordinates.
</p>
<h4>Parameters</h4>
<ol>
<li>x1 <em>number</em></li>
<li>y1 <em>number</em></li>
<li>x2 <em>number</em></li>
<li>y2 <em>number</em></li>
<li>x3 <em>number</em></li>
<li>y3 <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);</code></pre>
<h3 id="qcurveTo">
qcurveTo
</h3>
<p>
Draws quadratic curve to given coordinates.
</p>
<h4>Parameters</h4>
<ol>
<li>x1 <em>number</em></li>
<li>y1 <em>number</em></li>
<li>x2 <em>number</em></li>
<li>y2 <em>number</em></li>
</ol>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);</code></pre>
<h3 id="addRoundedCorner">
addRoundedCorner
</h3>
<p>
Draws quarter of circle form current point.
</p>
<h4>Parameters</h4>
<ol>
<li>r <em>number</em></li>
<li>dir <em>string</em> two letters direction</li>
</ol>
<h4>Possible dir values</h4>
<dl>
<dt>lu</dt>
<dd>left up</dd>
<dt>ld</dt>
<dd>left down</dd>
<dt>ru</dt>
<dd>right up</dd>
<dt>rd</dt>
<dd>right down</dd>
<dt>ur</dt>
<dd>up right</dd>
<dt>ul</dt>
<dd>up left</dd>
<dt>dr</dt>
<dd>down right</dd>
<dt>dl</dt>
<dd>down left</dd>
</dl>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).addRoundedCorner(10, "rd");</code></pre>
<h3 id="andClose">
andClose
</h3>
<p>
Closes the path.
</p>
<h4>Usage</h4>
<pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).andClose();</code></pre>
</div>
<div id="column-2">
<h2>
<a href="index.html">Home</a>
</h2>
<h2>
Contents
</h2>
<ul id="contents">
<li>
<a href="reference.html#Raphael"><code>Raphael</code></a>
</li>
<li>
<a href="reference.html#node"><code>node</code></a>
</li>
<li>
<a href="reference.html#rotate"><code>rotate</code></a>
</li>
<li>
<a href="reference.html#translate"><code>translate</code></a>
</li>
<li>
<a href="reference.html#scale"><code>scale</code></a>
</li>
<li>
<a href="reference.html#attr"><code>attr</code></a>
</li>
<li>
<a href="reference.html#attr"><code>animate</code></a>
</li>
<li>
<a href="reference.html#getBBox"><code>getBBox</code></a>
</li>
<li>
<a href="reference.html#toFront"><code>toFront</code></a>
</li>
<li>
<a href="reference.html#toBack"><code>toBack</code></a>
</li>
<li>
<a href="reference.html#circle"><code>circle</code></a>
</li>
<li>
<a href="reference.html#rect"><code>rect</code></a>
</li>
<li>
<a href="reference.html#ellipse"><code>ellipse</code></a>
</li>
<li>
<a href="reference.html#image"><code>image</code></a>
</li>
<li>
<a href="reference.html#path"><code>path</code></a>
<ul>
<li>
<a href="reference.html#absolutely"><code>absolutely</code></a>
</li>
<li>
<a href="reference.html#relatively"><code>relatively</code></a>
</li>
<li>
<a href="reference.html#moveTo"><code>moveTo</code></a>
</li>
<li>
<a href="reference.html#lineTo"><code>lineTo</code></a>
</li>
<li>
<a href="reference.html#cplineTo"><code>cplineTo</code></a>
</li>
<li>
<a href="reference.html#curveTo"><code>curveTo</code></a>
</li>
<li>
<a href="reference.html#qcurveTo"><code>qcurveTo</code></a>
</li>
<li>
<a href="reference.html#addRoundedCorner"><code>addRoundedCorner</code></a>
</li>
<li>
<a href="reference.html#andClose"><code>andClose</code></a>
</li>
</ul>
</li>
</ul>
</div>
<div id="footer">
<h3 id="copyright">
<a href="http://creativecommons.org/licenses/by-sa/3.0/" title="Creative Commons Attribution-ShareAlike 3.0 Unported" rel="license">Some Rights Reserved</a> by <a href="http://dmitry.baranovskiy.com/">Dmitry Baranovskiy</a>
</h3>
<h3 id="font">
A font by <a href="http://www.exljbris.nl">Jos Buivenga</a> | Logo by <a href="http://wasabicube.com/">Wasabicube</a>
</h3>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-616618-3");
pageTracker._trackPageview();
</script>
</body>
</html>