src/cm/media/js/lib/yui/yui_3.10.3/docs/event/simulate.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Simulating DOM Events</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Simulating DOM Events</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        When creating automated tests for your application or modules, you need
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        to be able to mock user events.  The DOM supports creating native events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        that behave essentially the same as user generated events, though
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        without the associated browser default behaviors (e.g. following a link
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        on click).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        The <code>event-simulate</code> module adds the <code>Y.Event.simulate</code> method for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        working with raw DOM nodes, but for most cases, the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        <code>node-event-simulate</code> module is the right choice, since it allows you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        to call the <code>simulate</code> method directly from the <code>Node</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
<h2 id="simulating-mouse-events">Simulating Mouse Events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    There are seven mouse events that can be simulated:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
  <li><code>click</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
  <li><code>dblclick</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
  <li><code>mousedown</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
  <li><code>mouseup</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
  <li><code>mouseover</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
  <li><code>mouseout</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
  <li><code>mousemove</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    Each event is fired by calling <code>simulate()</code> and passing in two
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    arguments: the type of event to fire and an optional object specifying
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    additional information for the event. To simulate a click on the document's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    body element, for example, the following code can be used:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    Y.one(&quot;body&quot;).simulate(&quot;click&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    This code simulates a click with all of the default properties on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    <code>event</code> object. To specify additional information, such as the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    Shift key being down, the second argument must be used and the exact DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    name for the event property specified (there is browser-normalizing logic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    that translates these into browser-specific properties when necessary):
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
<pre class="code prettyprint">Y.one(&quot;body&quot;).simulate(&quot;click&quot;, { shiftKey: true });</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    In this updated example, a click event is fired on the document's body
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    while simulating that the Shift key is down.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    The extra properties to specify vary depending on the event being simulated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    and are limited to this list:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    <dt><code>detail</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
            Indicates the number of times a button was clicked (DOM-compliant
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
            browsers only).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    <dt><code>screenX</code>, <code>screenY</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            Coordinates of the mouse event in relation to the entire screen
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            (DOM-compliant browsers only).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    <dt><code>clientX</code>, <code>clientY</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            Coordinates of the mouse event in relation to the browser client
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            area.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    <dt><code>ctrlKey</code>, <code>altKey</code>, <code>shiftKey</code>, <code>metaKey</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
            The state of the Ctrl, Alt, Shift, and Meta keys, respectively
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
            (true for down, false for up).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    <dt><code>button</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
            The button being used for the event, 0 for left (default), 1 for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
            right, 2 for center.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    <dt><code>relatedTarget</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
            the element the mouse moved from (during a <code>mouseover</code> event) or to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
            (during a <code>mouseout</code> event). 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    var node = Y.one(&quot;#myDiv&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    &#x2F;&#x2F;simulate a click Alt key down
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    node.simulate(&quot;click&quot;, { altKey: true});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    &#x2F;&#x2F;simulate a double click with Ctrl key down
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    node.simulate(&quot;dblclick&quot;, { ctrlKey: true });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    &#x2F;&#x2F;simulate a mouse over
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    node.simulate(&quot;mouseover&quot;, { relatedTarget: document.body });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    &#x2F;&#x2F;simulate a mouse out
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    node.simulate(&quot;mouseout&quot;, { relatedTarget: document.body });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
    &#x2F;&#x2F;simulate a mouse down at point (100,100) in the client area
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
    node.simulate(&quot;mousedown&quot;, { clientX: 100, clientY: 100 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
    &#x2F;&#x2F;simulate a mouse up at point (100,100) in the client area
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    node.simulate(&quot;mouseup&quot;, { clientX: 100, clientY: 100 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    &#x2F;&#x2F;simulate a mouse move at point (200, 200) in the client area
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
    node.simulate(&quot;mousemove&quot;, { clientX: 200, clientY: 200 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
<h2 id="simulating-key-events">Simulating Key Events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
<p>There are three key event simulations available:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    <li><code>keyup</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    <li><code>keydown</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    <li><code>keypress</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    As with the mouse events, key events are simulated using
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    <code>simulate()</code>. For <code>keyup</code> and <code>keydown</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
    the <code>keyCode</code> property must be specified; for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    <code>keypress</code>, the <code>charCode</code> property must be included.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
    In many cases, <code>keyCode</code> and <code>charCode</code> may be the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    same value to represent the same key (97, for instance, represents the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
    &quot;A&quot; key as well as being the ASCII code for the letter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
    &quot;a&quot;). For example:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    var node = Y.one(&quot;#myDiv&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    &#x2F;&#x2F;simulate a keydown on the A key
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
    node.simulate(&quot;keydown&quot;, { keyCode: 97 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    &#x2F;&#x2F;simulate a keyup on the A key
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    node.simulate(&quot;keyup&quot;, { keyCode: 97 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    &#x2F;&#x2F;simulate typing &quot;a&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    node.simulate(&quot;keypress&quot;, { charCode: 97 });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
    Key events also support the <code>ctrlKey</code>, <code>altKey</code>,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    <code>shiftKey</code>, and <code>metaKey</code> event properties.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    <strong>Note:</strong> Due to differences in browser implementations, key
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    events may not be simulated in the same manner across all browsers. For
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
    instance, when simulating a keypress event on a textbox, only Firefox will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    update the textbox with the new character of the key that was simulated to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
    be pressed. For other browsers, the events are still registered and all
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    event handlers are called, however, the textbox display and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    <code>value</code> property are not updated. These differences should go
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    away as browser support for simulated events improves in the future.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
<h2 id="simulating-ui-events">Simulating UI Events</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
<p>There are several UI event simulations available:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
    <li><code>blur</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
    <li><code>change</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
    <li><code>focus</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    <li><code>resize</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    <li><code>scroll</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
    <li><code>select</code></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    As with the other events, UI events are simulated using
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    <code>simulate()</code>. There are no properties that are required to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
    simulate UI events as these events don't carry extra information. Some
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    examples:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    var node = Y.one(&quot;#myInput&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    &#x2F;&#x2F;simulate a change event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    node.simulate(&quot;change&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
    &#x2F;&#x2F;simulate a select event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    node.simulate(&quot;select&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
<h2 id="simulating-touch-gestures">Simulating Touch Gestures</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
There are several high level gesture simulations primarily targeted for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
smartphones, tablets, and other touch-enabled devices. Single touch gestures
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
such as <code>tap</code> and <code>flick</code> are simulated using Mouse Events on desktop or mobile
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
devices where creating Touch Events are not supported. All gesture simulations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
are done by calling the <code>simulateGesture()</code> method against a Node instance. The
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
method is asynchronous by default so an optional callback function can be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
passed. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    <dt><code>tap</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
            Single finger gesture to simulate a tap. Default is to simulate 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
            one tap but it can be configured to simulate any number of taps. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    <dt><code>doubletap</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
            Single finger gesture to simulate double taps.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    <dt><code>press</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
            Single finger gesture to simulate a long press.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    <dt><code>move</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
            Single finger gesture to simulate a move. It simulates moving 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
            one finger straight in any direction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    <dt><code>flick</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
            Single finger gesture to simulate the flick gesture. It simulates 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
            moving one finger with a certain velocity along either an X or Y
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
            axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    <dt><code>pinch</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
            Two finger gesture to simulate pinch and spread gestures.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    <dt><code>rotate</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            Two finger gesture to simulate a rotate.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
Gesture can be simulated by calling <code>simulateGesture()</code> and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
passing the following arguments: the name of the gesture to simulate, an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
optional object to define gesture properties, and an optional callback function.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
The available properties vary per gesture.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
<p>If the location of the finger is not given, the center of the node element is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
used by default. This default behavior can be overridden by passing coordinates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
into the optional object. The coordinate values are relative to the top/left
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
corner of the node element. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
<h3 id="single-touch-gestures-tap-double-tab-and-press">Single Touch Gestures: Tap, Double Tab and Press</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
The following code simulates tap, double tap and press gestures:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    var node = Y.one(&quot;#myElement&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
    &#x2F;&#x2F;simulate tap gesture
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
    node.simulateGesture(&quot;tap&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    &#x2F;&#x2F;simulate double-tap gesture
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    node.simulateGesture(&quot;doubletap&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    &#x2F;&#x2F;simulate press gesture
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    node.simulateGesture(&quot;press&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        hold: 3000    &#x2F;&#x2F; press and hold for 3000ms
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    &#x2F;&#x2F; simulate tap with options and callback
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    node.simulateGesture(&quot;tap&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
        point: [30, 30], &#x2F;&#x2F; tap (30, 30) relative to the top&#x2F;left of the node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        hold: 3000,      &#x2F;&#x2F; hold for 3sec in a tap
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
        times: 2,        &#x2F;&#x2F; tap 2 times
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        delay: 500       &#x2F;&#x2F; delay time before next tap starts
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    }, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
        Y.log(&quot;I was called.&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
<h4 id="valid-options">Valid Options</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
Optional properties for the <code>tap</code> gesture:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
    <dt><code>point</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            Indicates the [x,y] coordinates where the tap should be 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
            simulated. Default is the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    <dt><code>hold</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
            The hold time in milliseconds. This is the time between 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
            <code>touchstart</code> and <code>touchend</code> event generation. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    <dt><code>times</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
            Indicates the number of taps. Default is 1.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    <dt><code>delay</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
            The number of milliseconds before the next tap simulation 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
            happens. This is valid only when <code>times</code> is more than 1.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
Optional properties for the <code>doubletap</code> gesture:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
    <dt><code>point</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
            Indicates the [x, y] coordinates where the doubletap should be 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
            simulated. Default is the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
The <code>press</code> gesture is essentially a single tap with the <code>hold</code> property
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
defined. Optional properties for the <code>press</code> gesture:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
    <dt><code>point</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
            Indicates the [x, y] coordinates where the tap should be 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
            simulated. Default is the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
    <dt><code>hold</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
            The hold time in milliseconds. This is the time between 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
            <code>touchstart</code> and <code>touchend</code> event generation. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
<h3 id="single-touch-gestures-move-and-flick">Single Touch Gestures: Move and Flick</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
The following code can be used To simulate various gestures of moving one
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
finger:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    var node = Y.one(&quot;#myElement&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
    &#x2F;&#x2F;simulate moving a finger 200 pixels along the x-axis 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    &#x2F;&#x2F;to the right for one second (default)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    node.simulateGesture(&quot;move&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    &#x2F;&#x2F;simulate moving a finger from the center of the node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    &#x2F;&#x2F;to a point 70 pixels to the right and 50 pixels down over 2000ms
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
    node.simulateGesture(&quot;move&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
        path: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
            xdist: 70,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            ydist: -50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
        } ,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        duration: 2000
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
    &#x2F;&#x2F;simulate a flick to the right (default)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    node.simulateGesture(&quot;flick&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    &#x2F;&#x2F;simulate a flick down 100 pixels over 50ms
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
    node.simulateGesture(&quot;flick&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        axis: y
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        distance: -100 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
        duration: 50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
<h4 id="valid-options2">Valid Options</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
Optional properties for the <code>move</code> gesture:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    <dt><code>path</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
            Indicates the path of the finger movement. It's an object with three 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
            optional properties: <code>point</code>, <code>xdist</code> and  <code>ydist</code>. The <code>point</code> is 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
            the start point and defaults to the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
            <code>xdist</code> and  <code>ydist</code> indicate the distance moved in pixels along the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
            x- and y-axis. A negative distance value indicates moving to left
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
            for <code>xdist</code> and down for <code>ydist</code>. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
    <dt><code>duration</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
            The duration of the gesture in milliseconds.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
Optional properties for the <code>flick</code> gesture:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
    <dt><code>point</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
            Indicates the [x, y] coordinates where the flick should be 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
            simulated. Default is the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    <dt><code>axis</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
            Valid values are either "x" or "y". Indicates moving axis. The flick 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
            moves in only 4 directions (left, right, up and down).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
    <dt><code>distance</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
            Distance to move (in pixels).  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    <dt><code>duration</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
            The duration of the gesture in milliseconds. This value may be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
            adjusted if it is below the minimum velocity to be a flick gesture.  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
<h3 id="two-finger-gestures-pinch-and-rotate">Two Finger Gestures: Pinch and Rotate</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
The <code>pinch</code> gesture is used to simulate the pinching and spreading of two
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
fingers. During a pinch simulation, rotation is also possible. Essentially
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
<code>pinch</code> and <code>rotate</code> simulations share the same base implementation to allow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
both pinching and rotation at the same time. The only difference is <code>pinch</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
requires <code>start</code> and <code>end</code> option properties while <code>rotate</code> requires <code>rotation</code> 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
option property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
The <code>pinch</code> and <code>rotate</code> gestures can be described as placing 2 fingers along a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
circle. Pinching and spreading can be described by start and end circles while 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
rotation occurs on a single circle. If the radius of the start circle is greater 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
than the end circle, the gesture becomes a pinch, otherwise it is a spread spread.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
The following code can be used to simulate two finger gestures:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
    var node = Y.one(&quot;#myElement&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
    &#x2F;&#x2F;simulate a pinch: &quot;r1&quot; and &quot;r2&quot; are required
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
    node.simulateGesture(&quot;pinch&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
        r1: 100, &#x2F;&#x2F; start circle radius at the center of the node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
        r2: 50   &#x2F;&#x2F; end circle radius at the center of the node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
    &#x2F;&#x2F;simulate a spread: same as &quot;pinch&quot; gesture but r2&gt;r1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    node.simulateGesture(&quot;pinch&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
        r1: 50,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
        r2: 100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
    &#x2F;&#x2F;simulate rotating a node 75 degrees counter-clockwise 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
    node.simulateGesture(&quot;rotate&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
        rotation: -75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    &#x2F;&#x2F;simulate a pinch and a rotation at the same time. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
    &#x2F;&#x2F;fingers start on a circle of radius 100 px, placed at top&#x2F;bottom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    &#x2F;&#x2F;fingers end on a circle of radius 50px, placed at right&#x2F;left 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
    node.simulateGesture(&quot;pinch&quot;, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
        r1: 100,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
        r2: 50,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        start: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
        rotation: 90
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
<h4 id="valid-options3">Valid Options</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
The optional properties available for <code>pinch</code> and <code>rotate</code> gestures are the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
same:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
<dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
    <dt><code>center</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
            The center of the circle where the two fingers are placed. Default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
            is the center of the node element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
    <dt><code>r1</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
            Required for <code>pinch</code> gestures but optional for <code>rotate</code>. Pixel radius
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
            of the start circle. If omitted in <code>rotate</code> gestures, default is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
            a fourth of the node element width or height, whichever is smaller.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
    <dt><code>r2</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
            Required for <code>pinch</code> gestures but optional for <code>rotate</code> gestures.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
            Pixel radius of the end circle. If omitted in <code>rotate</code> gestures,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
            default is a fourth of the node element width or height, whichever
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
            is smaller.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
    <dt><code>duration</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
            The duration of the gesture in milliseconds.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
    <dt><code>start</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
            Start degree of the first finger for the rotation gesture. Default  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
            is 0 (i.e., 12:00 on a clock).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
    <dt><code>rotation</code></dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
        <dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
            Degrees to rotate from the start degree. Negative value means 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
            rotation of counter-clockwise direction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
        </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
</dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
<h3 id="gesture-simulation-on-ios">Gesture Simulation on iOS</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
If the gesture simulation is called in iOS, it generates not only touch events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
but also <a href="http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/GestureEventClassReference/GestureEvent/GestureEvent.html">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
iOS specific gesture events</a>: <code>gesturestart</code>, <code>gesturechange</code>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
and <code>gestureend</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
<h3 id="customizing-default-gesture-properties">Customizing Default Gesture Properties</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
You can define custom default behaviors for gesture simulations by modifying the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
following <code>Y.GestureSimulation.defaults</code> object properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
<ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
    <li>HOLD_TAP</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
    <li>DELAY_TAP</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
    <li>HOLD_PRESS</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    <li>MIN_HOLD_PRESS</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
    <li>MAX_HOLD_PRESS</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    <li>DISTANCE_MOVE</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    <li>DURATION_MOVE</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
    <li>MAX_DURATION_MOVE</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
    <li>MIN_VELOCITY_FLICK</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
    <li>DISTANCE_FLICK</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
    <li>DURATION_FLICK</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
    <li>MAX_DURATION_FLICK</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
    <li>DURATION_PINCH</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
And an example:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
<pre class="code prettyprint">YUI().use(&#x27;node-event-simulate&#x27;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    var node = Y.one(&quot;#myElement&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
    Y.GestureSimulation.defaults = Y.merge(Y.GestureSimulation.defaults, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
        HOLD_TAP: 3000
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
    &#x2F;&#x2F;now touchend event will be generated after 3 sec from the touchstart 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
    &#x2F;&#x2F;event generation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
    node.simulateGesture(&quot;tap&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
<h2 id="caveats-and-coming-soons">Caveats and Coming Soons</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
<h3 id="faking">Don't use simulation in user facing code</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    Event simulation is for automated testing.  Your application should respond
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
    to real user events.  For reasons
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
    <a href="#only-what-you-ask-for">mentioned below</a>, it can be easy to get
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
    your application into a confused runtime state when some callbacks have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
    been executed but not others.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
    Typically, event simulation is sought to trigger certain callbacks.  If a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    function needs to respond to user action or be called programmatically, it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
    should be written accordingly and called directly in the latter case.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
    Often a better solution is to extract the core logic from the event handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
    into a separate function and call that method from the event handler and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
    from the other part of the application that was going to use simulation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
    In some cases, simulation is wanted because there may be any number of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
    subscriptions on a node, and all applicable callbacks should be triggered.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    If this is the case, investigate using <a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
    href="../event-custom/index.html">custom events</a>, instead.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
    The bottom line is, reliance on event simulation in production code is a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
    warning sign that the architecture is not scaling.  The affected code
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
    should be refactored before it becomes a larger problem.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
<h3 id="only-what-you-ask-for">Only what you ask for</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
    In many cases, events happen in groups (<code>mousedown</code>, <code>mouseup</code>, <code>click</code>, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
    <code>keydown</code>, <code>keyup</code>, <code>keypress</code>).  If you simulate an event that is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
    typically part of a group or is often followed by other events, <em>the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
    other events will NOT be generated</em> for free.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
    For example, if you simulate a <code>click</code> event on a submit button, you only
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
    simulate the <code>click</code> event.  The preceding <code>mousedown</code> and <code>mouseup</code>, as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
    well as the subsequently expected 'submit' are neither simulated or fired
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
    natively.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
<h3 id="no-synthetic-event-simulation-yet">No synthetic event simulation yet</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
    The <a href="synths.html">Synthetic event system</a> doesn't yet support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
    defining simulation. In most cases, though, synthetic events are triggered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
    by other DOM events that can be simulated, so it's often possible to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
    trigger them by simulating the underlying events.  But that ignores the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    point that synthetic events are supposed to mask that abstraction for your
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
    benefit.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
    Support for synthetic event simulation is on the roadmap.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
<a href="#simulating-mouse-events">Simulating Mouse Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
<a href="#simulating-key-events">Simulating Key Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
<a href="#simulating-ui-events">Simulating UI Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
<a href="#simulating-touch-gestures">Simulating Touch Gestures</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
<a href="#single-touch-gestures-tap-double-tab-and-press">Single Touch Gestures: Tap, Double Tab and Press</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
<a href="#valid-options">Valid Options</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
<a href="#single-touch-gestures-move-and-flick">Single Touch Gestures: Move and Flick</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
<a href="#valid-options2">Valid Options</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
<a href="#two-finger-gestures-pinch-and-rotate">Two Finger Gestures: Pinch and Rotate</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
<a href="#valid-options3">Valid Options</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
<a href="#gesture-simulation-on-ios">Gesture Simulation on iOS</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
<a href="#customizing-default-gesture-properties">Customizing Default Gesture Properties</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
<a href="#caveats-and-coming-soons">Caveats and Coming Soons</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
<a href="#faking">Don't use simulation in user facing code</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
<a href="#only-what-you-ask-for">Only what you ask for</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
<a href="#no-synthetic-event-simulation-yet">No synthetic event simulation yet</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
                                        <li data-description="Use the Event Utility to attach simple DOM event handlers.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
                                            <a href="basic-example.html">Simple DOM Events</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
                                        <li data-description="Using the synthetic event API to create a DOM event that fires in response to arrow keys being pressed.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
                                            <a href="synth-example.html">Creating an Arrow Event for DOM Subscription</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
                                        <li data-description="Supporting cross-device swipe gestures, using the event-move gesture events">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
                                            <a href="swipe-example.html">Supporting A Swipe Left Gesture</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
                            <h2 class="no-toc">Examples That Use This Component</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
                                        <li data-description="Creating an accessible menu button using the Focus Manager Node Plugin, Event&#x27;s delegation support and mouseenter event, along with the Overlay widget and Node&#x27;s support for the WAI-ARIA Roles and States.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
                                            <a href="../node-focusmanager/node-focusmanager-button.html">Accessible Menu Button</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
                                        <li data-description="Shows how to extend the base widget class, to create your own Widgets.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
                                            <a href="../widget/widget-extend.html">Extending the Base Widget Class</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
                                        <li data-description="Example Photo Browser application.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
                                            <a href="../dd/photo-browser.html">Photo Browser</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
                                        <li data-description="Portal style example using Drag &amp; Drop Event Bubbling and Animation.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
                                            <a href="../dd/portal-drag.html">Portal Style Example</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
                                        <li data-description="Use IO to request data over HTTP.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
                                            <a href="../io/get.html">HTTP GET to request data</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
    assets: '../assets/event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
    name: 'event',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
    title: 'Simulating DOM Events',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
YUI.Env.Tests.examples.push('basic-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
YUI.Env.Tests.examples.push('synth-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
YUI.Env.Tests.examples.push('swipe-example');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
YUI.Env.Tests.examples.push('node-focusmanager-button');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
YUI.Env.Tests.examples.push('widget-extend');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
YUI.Env.Tests.examples.push('photo-browser');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
YUI.Env.Tests.examples.push('portal-drag');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
YUI.Env.Tests.examples.push('get');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
</html>