Updated documentation. Version 0.6 changes.
[raphael] / reference.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
2    "http://www.w3.org/TR/html4/strict.dtd">
3 <html lang="en">
4     <head>
5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6         <title>Raphaël Reference</title>
7         <meta name="author" content="Dmitry Baranovskiy">
8         <meta name="description" content="Vector Graphics JavaScript™ Library">
9         <link rel="stylesheet" href="raphael.css" type="text/css" charset="utf-8" media="screen,projection">
10         <link rel="stylesheet" type="text/css" media="print" href="/dmitry-print.css">
11         <link rel="shortcut icon" href="/favicon16.png" type="image/x-icon">
12         <link rel="apple-touch-icon" href="/favicon.png">
13         <script src="../jquery.js" type="text/javascript" charset="utf-8"></script>
14         <script src="../dmitry.js" type="text/javascript" charset="utf-8"></script>
15     </head>
16     <body class="raphael" id="raphael.dmitry.baranovskiy.com">
17         <div id="header">
18             <a href="http://twitter.com/statuses/user_timeline/17180567.atom" id="rss" name="rss">rss</a>
19             <h1>
20                 Raphaël—JavaScript Library
21             </h1>
22         </div>
23         <div id="content">
24             <div>
25                 <div>
26                     <div id="column-1">
27                         <h2>Main Function</h2>
28                         <h3 id="Raphael">
29                             Raphael
30                         </h3>
31                         <p>
32                             Function that creates canvas for future drawing.
33                         </p>
34                         <h4>Parameters</h4>
35                         <ol>
36                             <li>container <em>HTMLElement</em> or <em>string</em></li>
37                             <li>width <em>number</em></li>
38                             <li>height <em>number</em></li>
39                         </ol>
40                         <p>or</p>
41                         <ol>
42                             <li>x <em>number</em></li>
43                             <li>y <em>number</em></li>
44                             <li>width <em>number</em></li>
45                             <li>height <em>number</em></li>
46                         </ol>
47                         <h4>Usage</h4>
48                         <pre class="javascript code"><code>
49 // Creates canvas 320&nbsp;×&nbsp;200 at 10, 50</code>
50 <code>var paper = Raphael(10, 50, 320, 200);</code>
51 <code>var paper = Raphael(document.getElementById("notepad"), 320, 200);</code>
52 <code>var paper = Raphael("notepad", 320, 200);</code></pre>
53                         <h2 id="Element">
54                             Element’s generic methods
55                         </h2>
56                         <p>
57                             Each object created on the canvas share the same generic methods:
58                         </p>
59                         <h3 id="node">
60                             node
61                         </h3>
62                         <p>
63                             Gives you reference to DOM object, so you can assign event handlers or just randomly mess around.
64                         </p>
65                         <h4>Usage</h4>
66                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
67 <code>c.node.onclick = function () { c.attr("fill", "red"); };</code></pre>
68                         <h3 id="rotate">
69                             rotate
70                         </h3>
71                         <p>
72                             Rotates element by given degree around its center.
73                         </p>
74                         <h4>Parameters</h4>
75                         <ol>
76                             <li>degree <em>number</em> Degree of rotation (0 – 360°)</li>
77                             <li>isAbsolute <em>boolean</em> [optional] Will rotation be relative or absolute</li>
78                         </ol>
79                         <h4>Usage</h4>
80                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
81 <code>c.rotate(45);</code></pre>
82                         <h3 id="translate">
83                             translate
84                         </h3>
85                         <p>
86                             Moves element around the canvas by given dimensions.
87                         </p>
88                         <h4>Parameters</h4>
89                         <ol>
90                             <li>dx <em>number</em> Pixels of translation by X</li>
91                             <li>dy <em>number</em> Pixels of translation by Y</li>
92                         </ol>
93                         <h4>Usage</h4>
94                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
95 <code>c.translate(10, 10);</code></pre>
96                         <h3 id="scale">
97                             scale
98                         </h3>
99                         <p>
100                             Scales element by given amount of times.
101                         </p>
102                         <h4>Parameters</h4>
103                         <ol>
104                             <li>Xtimes <em>number</em></li>
105                             <li>Ytimes <em>number</em></li>
106                         </ol>
107                         <h4>Usage</h4>
108                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
109 <code>c.scale(1.5, 1.5);</code></pre>
110                         <h3 id="attr">
111                             attr
112                         </h3>
113                         <p>
114                             Sets attributes of elements.
115                         </p>
116                         <h4>Parameters</h4>
117                         <ol>
118                             <li>params <em>object</em></li>
119                         </ol>
120                         <p>or</p>
121                         <ol>
122                             <li>attributeName <em>string</em></li>
123                             <li>value <em>string</em></li>
124                         </ol>
125                         <h4>Possible parameters</h4>
126                         <ul>
127                             <li>cx <em>number</em></li>
128                             <li>cy <em>number</em></li>
129                             <li>dasharray <em>string</em> [“-”, “.”, “-.”, “-..”, “. ”, “- ”, “--”, “- .”, “--.”, “--..”]</li>
130                             <li>fill <em>colour</em></li>
131                             <li>fill-opacity <em>number</em></li>
132                             <li>font <em>string</em></li>
133                             <li>font-family <em>string</em></li>
134                             <li>font-size <em>number</em></li>
135                             <li>font-weight <em>string</em></li>
136                             <li>gradient <em>object</em></li>
137                             <li>height <em>number</em></li>
138                             <li>opacity <em>number</em></li>
139                             <li>path <em>pathString</em></li>
140                             <li>r <em>number</em></li>
141                             <li>rotation <em>number</em></li>
142                             <li>rx <em>number</em></li>
143                             <li>ry <em>number</em></li>
144                             <li>scale <em>CSV</em></li>
145                             <li>stroke <em>colour</em></li>
146                             <li>stroke-linecap <em>string</em> [“butt”, “square”, “round”, “miter”]</li>
147                             <li>stroke-linejoin <em>string</em> [“butt”, “square”, “round”, “miter”]</li>
148                             <li>stroke-miterlimit <em>number</em></li>
149                             <li>stroke-opacity <em>number</em></li>
150                             <li>stroke-width <em>number</em></li>
151                             <li>translation <em>CSV</em></li>
152                             <li>width <em>number</em></li>
153                             <li>x <em>number</em></li>
154                             <li>y <em>number</em></li>
155                         </ul>
156                         <h4>Usage</h4>
157                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
158 <code>c.attr("fill", "black");</code>
159 <code>c.attr({fill: "#000", stroke: "#f00", opacity: 0.5});</code></pre>
160                         <h3 id="getBBox">
161                             getBBox
162                         </h3>
163                         <p>
164                             Returns dimensions of given element.
165                         </p>
166                         <h4>Usage</h4>
167                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
168 <code>var width = c.getBBox().width;</code></pre>
169                         <h3 id="toFront">
170                             toFront
171                         </h3>
172                         <p>
173                             Moves element to front in hierarchy.
174                         </p>
175                         <h4>Usage</h4>
176                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
177 <code>c.toFront();</code></pre>
178                         <h3 id="toBack">
179                             toBack
180                         </h3>
181                         <p>
182                             Moves element to back in hierarchy.
183                         </p>
184                         <h4>Usage</h4>
185                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code>
186 <code>c.toBack();</code></pre>
187                         <h2>Graphic Primitives</h2>
188                         <h3 id="circle">
189                             circle
190                         </h3>
191                         <p>
192                             Creates circle.
193                         </p>
194                         <h4>Parameters</h4>
195                         <ol>
196                             <li>x <em>number</em> X coordinate of the centre</li>
197                             <li>y <em>number</em> Y coordinate of the centre</li>
198                             <li>r <em>number</em> radius</li>
199                         </ol>
200                         <h4>Usage</h4>
201                         <pre class="javascript code"><code>var c = paper.circle(10, 10, 10);</code></pre>
202                         <h3 id="rect">
203                             rect
204                         </h3>
205                         <p>
206                             Creates rectangle.
207                         </p>
208                         <h4>Parameters</h4>
209                         <ol>
210                             <li>x <em>number</em> X coordinate of top left corner</li>
211                             <li>y <em>number</em> Y coordinate of top left corner</li>
212                             <li>width <em>number</em></li>
213                             <li>height <em>number</em></li>
214                             <li>r <em>number</em> [optional] radius for rounded corners, default is 0</li>
215                         </ol>
216                         <h4>Usage</h4>
217                         <pre class="javascript code"><code>// regular rectangle</code>
218 <code>var c = paper.rect(10, 10, 10, 10);</code>
219 <code>// rounded rectangle</code>
220 <code>var c = paper.rect(10, 10, 100, 50, 10);</code></pre>
221                         <h3 id="ellipse">
222                             ellipse
223                         </h3>
224                         <p>
225                             Creates an ellipse.
226                         </p>
227                         <h4>Parameters</h4>
228                         <ol>
229                             <li>x <em>number</em> X coordinate of the centre</li>
230                             <li>y <em>number</em> X coordinate of the centre</li>
231                             <li>rx <em>number</em> Horisontal radius</li>
232                             <li>ry <em>number</em> Vertical radius</li>
233                         </ol>
234                         <h4>Usage</h4>
235                         <pre class="javascript code"><code>var c = paper.ellipse(100, 100, 30, 40);</code></pre>
236                         <h3 id="image">
237                             image
238                         </h3>
239                         <p>
240                             Embeds an image in SVG/VML area.
241                         </p>
242                         <h4>Parameters</h4>
243                         <ol>
244                             <li>src <em>string</em></li>
245                             <li>x <em>number</em></li>
246                             <li>y <em>number</em></li>
247                             <li>width <em>number</em></li>
248                             <li>height <em>number</em></li>
249                         </ol>
250                         <h4>Usage</h4>
251                         <pre class="javascript code"><code>var c = paper.image("apple.png", 10, 10, 100, 100);</code></pre>
252                         <h3 id="path">
253                             path
254                         </h3>
255                         <p>
256                             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>.
257                         </p>
258                         <h4>Parameters</h4>
259                         <ol>
260                             <li>params <em>object</em> Similar to object for <code><a href="#attr">attr</a></code> method</li>
261                             <li>pathString <em>string</em> [optional] path in SVG path string format. See SVG documentation.</li>
262                         </ol>
263                         <h4>Usage</h4>
264                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
265                         <h2>Path Methods</h2>
266                         <h3 id="absolutely">
267                             absolutely
268                         </h3>
269                         <p>
270                             Sets trigger to count all following units as absolute ones, unless said otherwise. [<em>on by default</em>]
271                         </p>
272                         <h4>Usage</h4>
273                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).absolutely()
274     .moveTo(10, 10).lineTo(50, 50);</code></pre>
275                         <h3 id="relatively">
276                             relatively
277                         </h3>
278                         <p>
279                             Sets trigger to count all following units as relative ones, unless said otherwise.
280                         </p>
281                         <h4>Usage</h4>
282                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).relatively()
283     .moveTo(10, 10).lineTo(50, 50);</code></pre>
284                         <h3 id="moveTo">
285                             moveTo
286                         </h3>
287                         <p>
288                             Moves drawing point to given coordinates.
289                         </p>
290                         <h4>Parameters</h4>
291                         <ol>
292                             <li>x <em>number</em></li>
293                             <li>y <em>number</em></li>
294                         </ol>
295                         <h4>Usage</h4>
296                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
297                         <h3 id="lineTo">
298                             lineTo
299                         </h3>
300                         <p>
301                             Draws straight line to given coordinates.
302                         </p>
303                         <h4>Parameters</h4>
304                         <ol>
305                             <li>x <em>number</em></li>
306                             <li>y <em>number</em></li>
307                         </ol>
308                         <h4>Usage</h4>
309                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).lineTo(50, 50);</code></pre>
310                         <h3 id="cplineTo">
311                             cplineTo
312                         </h3>
313                         <p>
314                             Draws curved line to given coordinates. Line will have horizontal anchors on start and on finish.
315                         </p>
316                         <h4>Parameters</h4>
317                         <ol>
318                             <li>x <em>number</em></li>
319                             <li>y <em>number</em></li>
320                             <li>width <em>number</em></li>
321                         </ol>
322                         <h4>Usage</h4>
323                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).cplineTo(50, 50);</code></pre>
324                         <h3 id="curveTo">
325                             curveTo
326                         </h3>
327                         <p>
328                             Draws bicubic curve to given coordinates.
329                         </p>
330                         <h4>Parameters</h4>
331                         <ol>
332                             <li>x1 <em>number</em></li>
333                             <li>y1 <em>number</em></li>
334                             <li>x2 <em>number</em></li>
335                             <li>y2 <em>number</em></li>
336                             <li>x3 <em>number</em></li>
337                             <li>y3 <em>number</em></li>
338                         </ol>
339                         <h4>Usage</h4>
340                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);</code></pre>
341                         <h3 id="qcurveTo">
342                             qcurveTo
343                         </h3>
344                         <p>
345                             Draws quadratic curve to given coordinates.
346                         </p>
347                         <h4>Parameters</h4>
348                         <ol>
349                             <li>x1 <em>number</em></li>
350                             <li>y1 <em>number</em></li>
351                             <li>x2 <em>number</em></li>
352                             <li>y2 <em>number</em></li>
353                         </ol>
354                         <h4>Usage</h4>
355                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).curveTo(10, 15, 45, 45, 50, 50);</code></pre>
356                         <h3 id="addRoundedCorner">
357                             addRoundedCorner
358                         </h3>
359                         <p>
360                             Draws quarter of circle form current point.
361                         </p>
362                         <h4>Parameters</h4>
363                         <ol>
364                             <li>r <em>number</em></li>
365                             <li>dir <em>string</em> two letters direction</li>
366                         </ol>
367                         <h4>Possible dir values</h4>
368                         <dl>
369                             <dt>lu</dt>
370                             <dd>left up</dd>
371                             <dt>ld</dt>
372                             <dd>left down</dd>
373                             <dt>ru</dt>
374                             <dd>right up</dd>
375                             <dt>rd</dt>
376                             <dd>right down</dd>
377                             <dt>ur</dt>
378                             <dd>up right</dd>
379                             <dt>ul</dt>
380                             <dd>up left</dd>
381                             <dt>dr</dt>
382                             <dd>down right</dd>
383                             <dt>dl</dt>
384                             <dd>down left</dd>
385                         </dl>
386                         <h4>Usage</h4>
387                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).addRoundedCorner(10, "rd");</code></pre>
388                         <h3 id="andClose">
389                             andClose
390                         </h3>
391                         <p>
392                             Closes the path.
393                         </p>
394                         <h4>Usage</h4>
395                         <pre class="javascript code"><code>var c = paper.path({stroke: "#036"}).moveTo(10, 10).andClose();</code></pre>
396                     </div>
397                     <div id="column-2">
398                         <h2>
399                             <a href="index.html">Home</a>
400                         </h2>
401                         <h2>
402                             Contents
403                         </h2>
404                         <ul id="contents">
405                             <li>
406                                 <a href="reference.html#Raphael"><code>Raphael</code></a>
407                             </li>
408                             <li>
409                                 <a href="reference.html#node"><code>node</code></a>
410                             </li>
411                             <li>
412                                 <a href="reference.html#rotate"><code>rotate</code></a>
413                             </li>
414                             <li>
415                                 <a href="reference.html#translate"><code>translate</code></a>
416                             </li>
417                             <li>
418                                 <a href="reference.html#scale"><code>scale</code></a>
419                             </li>
420                             <li>
421                                 <a href="reference.html#attr"><code>attr</code></a>
422                             </li>
423                             <li>
424                                 <a href="reference.html#getBBox"><code>getBBox</code></a>
425                             </li>
426                             <li>
427                                 <a href="reference.html#toFront"><code>toFront</code></a>
428                             </li>
429                             <li>
430                                 <a href="reference.html#toBack"><code>toBack</code></a>
431                             </li>
432                             <li>
433                                 <a href="reference.html#circle"><code>circle</code></a>
434                             </li>
435                             <li>
436                                 <a href="reference.html#rect"><code>rect</code></a>
437                             </li>
438                             <li>
439                                 <a href="reference.html#ellipse"><code>ellipse</code></a>
440                             </li>
441                             <li>
442                                 <a href="reference.html#image"><code>image</code></a>
443                             </li>
444                             <li>
445                                 <a href="reference.html#path"><code>path</code></a>
446                                 <ul>
447                                     <li>
448                                         <a href="reference.html#absolutely"><code>absolutely</code></a>
449                                     </li>
450                                     <li>
451                                         <a href="reference.html#relatively"><code>relatively</code></a>
452                                     </li>
453                                     <li>
454                                         <a href="reference.html#moveTo"><code>moveTo</code></a>
455                                     </li>
456                                     <li>
457                                         <a href="reference.html#lineTo"><code>lineTo</code></a>
458                                     </li>
459                                     <li>
460                                         <a href="reference.html#cplineTo"><code>cplineTo</code></a>
461                                     </li>
462                                     <li>
463                                         <a href="reference.html#curveTo"><code>curveTo</code></a>
464                                     </li>
465                                     <li>
466                                         <a href="reference.html#qcurveTo"><code>qcurveTo</code></a>
467                                     </li>
468                                     <li>
469                                         <a href="reference.html#addRoundedCorner"><code>addRoundedCorner</code></a>
470                                     </li>
471                                     <li>
472                                         <a href="reference.html#andClose"><code>andClose</code></a>
473                                     </li>
474                                 </ul>
475                             </li>
476                         </ul>
477                     </div>
478                     <div  id="footer">
479                         <h3 id="copyright">
480                             <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>
481                         </h3>
482                         <h3 id="font">
483                             A font by <a href="http://www.exljbris.nl">Jos Buivenga</a> | Logo by <a href="http://wasabicube.com/">Wasabicube</a>
484                         </h3>
485                     </div>
486                 </div>
487             </div>
488         </div>
489         <script type="text/javascript">
490         var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
491         document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
492         </script>
493         <script type="text/javascript">
494         var pageTracker = _gat._getTracker("UA-616618-3");
495         pageTracker._trackPageview();
496         </script>
497     </body>
498 </html>