<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> The <dfn>NodeRect.js</dfn> JavaScript library is available at
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://suika.suikawiki.org/www/css/noderect/NodeRect.js">https://suika.suikawiki.org/www/css/noderect/NodeRect.js</anchor-external>.</p><section><h1>NR</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> Public class method</h1><dl><dt>NR.resetIndex</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> Private class attribute</h1><dl><dt>NR.index</dt><dd></dd></dl></section></section><section><h1>Members common to NR.Rect, NR.Vector, and NR.Band</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> Class constant</h1><dl><dt>NR.<var>type</var>.invalid</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> Instance attributes</h1><dl><dt>invalid</dt><dd></dd><dt>label</dt><dd></dd><dt>index</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> Instance methods (rendering)</h1><dl><dt>getRenderedLeft ()</dt><dd></dd><dt>getRenderedTop ()</dt><dd></dd><dt>getRenderedWidth ()</dt><dd></dd><dt>getRenderedHeight ()</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> Instance methods (stringify)</h1><dl><dt>getFullLabel ()</dt><dd></dd><dt>toString ()</dt><dd></dd></dl></section></section><section><h1>NR.Rect</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> Constructor and public class methods</h1><dl><dt>new NR.Rect (top, right, bottom, left, width, height)</dt><dd>
One of top, bottom, and height and one of left, right, and width can be omitted.
If one of arguments that cannot be omitted is not a number, then the invalid flag is set.</dd><dt>NR.Rect.trbl (top, right, bottom, left)</dt><dd></dd><dt>NR.Rect.trblCSS (element, top, right, bottom, left)</dt><dd>Same as NR.Rect.trbl except that 
top, right, bottom, left are interpreted as CSS &lt;length&gt; in the context of <var xml:lang="en">element</var>.</dd><dt>NR.Rect.tlwh (top, left, width, height)</dt><dd></dd><dt>NR.Rect.wh (width, height)</dt><dd>top = 0, left = 0</dd><dt>NR.Rect.whCSS (element, width, height)</dt><dd>Same as NR.Rect.trbl except that 
<var xml:lang="en">width</var>, <var xml:lang="en">height</var> are interpreted as CSS &lt;length&gt; in the context of <var xml:lang="en">element</var>.</dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> Instance attributes</h1><dl><dt>top</dt><dd></dd><dt>right</dt><dd></dd><dt>bottom</dt><dd></dd><dt>left</dt><dd></dd><dt>width</dt><dd>width == right - left; width &gt; 0</dd><dt>height</dt><dd>height == bottom - top; height &gt; 0</dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> Instance methods (properties)</h1><dl><dt>isZeroRect ()</dt><dd>Return if width == 0 and height == 0.</dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> Instance methods (operations)</h1><dl><dt>add (NR.Vector)</dt><dd>top += arg.y; left += arg.x</dd><dt>add (NR.Band)</dt><dd>top -= |arg.top|; right += |arg.right|; bottom += |arg.bottom|; left -= |arg.left|</dd><dt>subtract (NR.Vector)</dt><dd>top -= arg.y; left -= arg.x</dd><dt>subtract (NR.Band)</dt><dd>top += |arg.top|; right -= |arg.right|; bottom -= |arg.bottom|; left += |arg.left|</dd><dt>getTopLeft ()</dt><dd>new NR.Vector (left, top)</dd></dl></section></section><section><h1>NR.Vector</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> Constructor</h1><dl><dt>new NR.Vector (x, y)</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> Instance attributes</h1><dl><dt>x</dt><dd></dd><dt>y</dt><dd></dd><dt>width</dt><dd>|-x|</dd><dt>height</dt><dd>|-y|</dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> Instance methods (operations)</h1><dl><dt>negate ()</dt><dd>new (-x, -y)</dd><dt>add (NR.Vector)</dt><dd>x += arg.x; y += arg.y</dd><dt>subtract (NR.Vector)</dt><dd>x -= arg.x; y -= arg.y</dd></dl></section></section><section><h1>NR.Band</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> Constructor</h1><dl><dt>new NR.Band (t, r, b, l)</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> Instance attributes</h1><dl><dt>top</dt><dd></dd><dt>right</dt><dd></dd><dt>bottom</dt><dd></dd><dt>left</dt><dd></dd></dl></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> Instance methods (oprerations)</h1><dl><dt>add (NR.Band)</dt><dd>top = |top| + |arg.top|; ...</dd><dt>and (NR.Band)</dt><dd>top = arg.top != 0 ? this.top : 0, ...</dd><dt>getTopLeft ()</dt><dd>new NR.Vector (-|top|, -|left|).
A vector that represents the top left corner of the outer edge from the top left corner
of the inner edge.</dd></dl></section></section><section><h1>NR.Element</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> NR.Element.getPixelWH (element, width, height)</h1><p>Converts two CSS &lt;length&gt;s into pixel-unit in the context of <var xml:lang="en">element</var>.
Return {width: <var>pixel-width</var>, height: <var>pixel-height</var>}.<dl><dt>NR.Element.getCumulativeOffsetRect</dt><dd></dd></dl></p></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> NR.Element.getBoxAreas (element, window)</h1><section><h1>margin</h1><p>Margin area of the element.</p><p>Supported browsers: All.</p></section><section><h1>border</h1><p>Border area of the element.</p><p>Supported browsers: All.</p></section><section><h1>padding</h1><p>Padding area of the element.</p><p>Supported browsers: All.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> NR.Element.getAttrRects (element)</h1><section><h1>offset</h1><p>Box represented by offset* attributes of the element.</p><p>Supported browsers: All.</p><p>Origin: Browser-dependent.</p></section><section><h1>client</h1><p>Box represented by client* attributes of the element.</p><p>Supported browsers: All.</p><p>Origin: Browser-dependent.</p></section><section><h1>scrollableArea</h1><p>Box represented by <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scrollWidth</anchor></code> and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scrollHeight</anchor></code>
attributes of the element.</p><p>Supported browsers: All.</p><p>Origin: Browser-dependent.</p></section><section><h1>scrollState</h1><p>The point represented by <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scrollTop</anchor></code> and <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scrollLeft</anchor></code>
attributes of the element.</p><p>Supported browsers: All.</p><p>Origin: Browser-dependent.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> NR.Element.getCumulativeOffsetRect (element, window)</h1><p>Offset box of the element.
If margin collapsing occurs for the <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> and/or
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> elements, the result is wrong.</p><p>Origin: position-absolute-origin.</p><p>Supported browsers: WebKit and Opera.  In Gecko and WinIE the result might be incorrect.</p></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> NR.Element.getRects (element, window)</h1><section><h1>contentBox</h1><p>The content box generated by the element.
It might be wrong when the <code xml:lang="en">paddingBox</code> is wrong.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>paddingBox</h1><p>The padding box generated by the element.
It might be wrong when the <code xml:lang="en">borderBox</code> is wrong.
In addition, if the element is the <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> element or the
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> element, the result might be wrong.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>borderBox</h1><p>The border box generated by the element.<ul><li>If the element generates an inline box, the result might be wrong.</li><li>In Gecko standard mode with both <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> and
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> element has <code class="CSS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">overflow</anchor></code> property specified,
the result might be wrong.</li><li>If the element is the <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> element or the
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> element, the result might be wrong.</li><li>In Safari and margin collapsing occurs for the <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> and/or
<code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> elements.</li><li>In Safari and its <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">offset<var xmlns="http://www.w3.org/1999/xhtml">*</var></anchor></code> attributes do not return reasonable
values (e.g. <code class="CSS" xml:lang="en">td:first-child</code>).</li></ul></p><p>Origin: position-absolute-origin.</p><p>Supported browsers: All.  </p></section><section><h1>marginBox</h1><p>The margin box generated by the element.
It might be wrong when the <code xml:lang="en">borderBox</code> is wrong.</p><p>Origin: position-absolute-origin.</p><p>Supported browsers: All.</p></section><section><h1>boundingClient</h1><p>The box returned by <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoundingClientRect</anchor></code> method of the element.</p><p>Origin: Browser-dependent.</p><p>Supported browsers: Gecko, Opera, and WinIE.</p></section><section><h1>margin, border, padding</h1><p>Same as <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;18</anchor-internal> <code class="JS" xml:lang="en">getBoxAreas</code>.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> NR.Element.getRectsExtra (element, window)</h1><section><h1>boxObject</h1><p>The box returned by <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoxObjectFor</anchor></code> method.</p><p>Origin: Browser-dependent.</p><p>Supported browser: Gecko.</p></section><section><h1>boxObjectScreen</h1><p>The box returned by <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoxObjectFor</anchor></code> method.</p><p>Origin: The top left corner of the screen.</p><p>Supported browser: Gecko.</p></section><section><h1>textRangeBounding (instanceof NR.Rect)</h1><p>The box returned by <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bounding*</anchor></code> attributes of <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TextRange</anchor></code>
object for the element, if any.</p><p>Origin: The top left corner of the viewport border box.</p><p>Supported browser: WinIE.</p></section><section><h1>textRangeBoundingClient (instanceof NR.Rect)</h1><p>The box returned by <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoundingClientRect</anchor></code> method of <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TextRange</anchor></code>
object for the element, if any.</p><p>Origin: The top left corner of the viewport border box.</p><p>Supported browser: WinIE.</p></section><section><h1>textRangeOffset (instanceof NR.Vector)</h1><p>The point returned by <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">offset*</anchor></code> attributes of <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TextRange</anchor></code>
object for the element, if any.</p><p>Origin: The top left corner of the viewport border box.</p><p>Supported browser: WinIE.</p></section></section></section><section><h1>NR.View</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> NR.View.getBoundingClientRectOrigin (window, document)</h1><p>The origin of the <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoundingClientRect</anchor></code> method, measured by inserting an
element into the document.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: WinIE, Opera, and Gecko.</p></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end>  NR.View.getViewportRects (window)</h1><section><h1>canvasOrigin (instanceof NR.Vector)</h1><p>The origin of the canvas.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>boundingClientOrigin (instanceof NR.Vector)</h1><p>The origin of the rect returned by the <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getBoundingClientRect</anchor></code> method.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>icb (instanceof NR.Rect)</h1><p>The <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">initial containing block</anchor>.</p><p>Origin: The position-absolute-origin.</p><p>Supported browsers: All.</p></section><section><h1>contentBox (instanceof NR.Rect)</h1><p>The content area of the viewport (not including scrollbars and border area).</p><p>Origin: The position-absolute-origin.</p><p>Supported browsers: All.</p></section><section><h1>scrollState (instanceof NR.Vector)</h1><p>The top left corner of the inner edge of the viewport.</p><p>Origin: The top left corner of the canvas.</p><p>Supported browsers: All.</p></section><section><h1>windowPageOffset (instanceof NR.Vector)</h1><p>The point returned by <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.pageXOffset</anchor></code> and
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.pageYOffset</anchor></code> attributes.</p><p>Origin: The top left corner of the canvas.</p><p>Supported browsers: WebKit, Gecko, and Opera.</p></section><section><h1>deOffset, deClient, deScrollableArea, deScrollState</h1><p>The document element's boxes.</p></section><section><h1>bodyOffset, bodyClient, bodyScrollableArea, bodyScrollState</h1><p>The <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> element's boxes.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> NR.View.getViewportRectsExtra (window)</h1><section><h1>windowInner (instanceof NR.Rect)</h1><p>The entire viewport, including scrollbars.</p><p>Origin: The top left corner of the viewport.</p><p>Supported browsers: WebKit, Gecko, and Opera.</p></section><section><h1>windowScrollXY (instanceof NR.Vector)</h1><p>The point returned by <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.scrollX</anchor></code> and
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.scrollY</anchor></code> attributes.</p><p>Origin: The top left corner of the canvas.</p><p>Supported browsers: WebKit and Gecko.</p></section><section><h1>windowScrollMax (instanceof NR.Vector)</h1><p>The point represented by (<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.scrollMaxX</anchor></code>,
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window.scrollMaxY</anchor></code>).</p><p>Origin: N/A.</p><p>Supported browsers: Gecko.</p></section><section><h1>document (instanceof NR.Rect)</h1><p>The box represented by <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.width</anchor></code> and
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.height</anchor></code> attributes.</p><p>Origin: Browser-dependent.</p><p>Supported browsers: WebKit and Gecko.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end>  NR.View.getWindowRects (window)</h1><section><h1>outer (instanceof NR.Rect)</h1><p>The rect representing the browser window.</p><p>Origin: The top left corner of the browser window.</p><p>Supported browsers: WebKit, Gecko, and Opera.</p></section><section><h1>screenXY (instanceof NR.Vector)</h1><p>The top left corner of the browser window.</p><p>Origin: The top left corner of the screen.</p><p>Supported browsers: WebKit, Gecko, and Opera (broken).</p></section><section><h1>screenTL (instanceof NR.Vector)</h1><p>The top left corner of the browser window.</p><p>Origin: The top left corner of the screen.</p><p>Supported browsers: WebKit, Gecko, and WinIE.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> NR.View.getScreenRects (window)</h1><section><h1>device (instanceof NR.Rect)</h1><p>The rect representing the screen.</p><p>Origin: In Gecko, the origin of the screen coordinate space.
In WebKit, Opera, and WinIE, the top left corner of the screen.</p><p>Supported browsers: All.</p></section><section><h1>avail (instanceof NR.Rect)</h1><p>The available area in the screen.</p><p>Origin: In WebKit and Gecko, the top left corner of the screen.
In Opera and WinIE, the top left corner of the available area.</p><p>Supported browsers: All.</p></section></section></section><section><h1>NR.Event</h1><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> NR.Event.getRects (event, window)</h1><section><h1>canvas (instanceof NR.Vector)</h1><p>The mouse event location in the canvas.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>viewport (instanceof NR.Vector)</h1><p>The mouse event location in the viewport.</p><p>Origin: The position-absolute origin.</p><p>Supported browsers: All.</p></section><section><h1>client (instanceof NR.Vector)</h1><p>The clientX/clientY value.</p><p>Origin: The top left corner of the canvas visible area.</p><p>Supported browsers: All.</p></section><section><h1>offset (instanceof NR.Vector)</h1><p>The offsetX/offsetY value.</p><p>Origin: Browser-dependent.</p><p>Supported browsers: WebKit, Opera, WinIE.</p></section></section><section><h1><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> NR.Event.getRectsExtra (event)</h1><section><h1>screen (instanceof NR.Vector)</h1><p>The screenX/screenY value.</p><p>Origin: The top left corner of the screen.</p><p>Supported browsers: All.</p></section><section><h1>wh (instanceof NR.Vector)</h1><p>The width/height value.</p><p>Origin: Browser-dependent.</p><p>Supported browser: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NC4</anchor>.</p></section><section><h1>page (instanceof NR.Vector)</h1><p>The pageX/pageY value.</p><p>Origin: Browser-dependent.</p><p>Supported browsers: Gecko, WebKit, Opera.</p></section><section><h1>layer (instanceof NR.Vector)</h1><p>The layerX/layerY value.</p><p>Origin: Browser-dependent.</p><p>Supported browsers: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gecko</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor>.</p></section><section><h1>xy (instanceof NR.Vector)</h1><p>The x/y value.</p><p>Origin: Browser dependent.</p><p>Supported browsers: WebKit, Opera, WinIE.</p></section></section></section><section><h1>NROnLoad</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> If a function <code class="JS" xml:lang="en">NROnLoad</code> of the global scope is defined, it is invoked
when all of the classes defined in the <code class="JS" xml:lang="en">NodeRect.js</code> are loaded.</p></section><section><h1>Definition</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> The <dfn>position-absolute origin</dfn> is the top left corner of the box that would be generated from
a child element with <code class="CSS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">position</anchor>: <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">absolute</anchor>; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top</anchor>: 0; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left</anchor>: 0</code> of 
the <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">body</anchor></code> element.  It is same as the origin of the canvas, according to the
CSS 2.1 specification.  However, in Gecko, it is instead the top left corner of the padding edge of
the box generated by the root element.</p></section><section><h1>Example</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> See <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NodeRectViewer.js</anchor>, an interactive user interface for the NR.js.</p></section><section><h1>Known problems</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> rtl support</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> non-HTML elements</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> iframe/frame</p></section></body></html>