Version 3.17.2

APIs

  • Begin typing in the search box above to see results.
Show:

File: node/js/node-event-simulate.js

/**
 * Adds functionality to simulate events.
 * @module node
 * @submodule node-event-simulate
 */
/**
 * Simulates an event on the node.
 * @param {String} type The type of event (i.e., "click").
 * @param {Object} options (Optional) Extra options to copy onto the event object.
 * @for Node
 * @method simulate
 */
Y.Node.prototype.simulate = function (type, options) {
 Y.Event.simulate(Y.Node.getDOMNode(this), type, options);
};
/**
 * Simulates the higher user level gesture of the given name on this node.
 * This method generates a set of low level touch events(Apple specific gesture
 * events as well for the iOS platforms) asynchronously. Note that gesture
 * simulation is relying on `Y.Event.simulate()` method to generate
 * the touch events under the hood. The `Y.Event.simulate()` method
 * itself is a synchronous method.
 *
 * Supported gestures are `tap`, `doubletap`, `press`, `move`, `flick`, `pinch`
 * and `rotate`.
 *
 * The `pinch` gesture is used to simulate the pinching and spreading of two
 * fingers. During a pinch simulation, rotation is also possible. Essentially
 * `pinch` and `rotate` simulations share the same base implementation to allow
 * both pinching and rotation at the same time. The only difference is `pinch`
 * requires `start` and `end` option properties while `rotate` requires `rotation`
 * option property.
 *
 * The `pinch` and `rotate` gestures can be described as placing 2 fingers along a
 * circle. Pinching and spreading can be described by start and end circles while
 * rotation occurs on a single circle. If the radius of the start circle is greater
 * than the end circle, the gesture becomes a pinch, otherwise it is a spread spread.
 *
 * @example
 *
 * var node = Y.one("#target");
 *
 * // double tap example
 * node.simulateGesture("doubletap", function() {
 * // my callback function
 * });
 *
 * // flick example from the center of the node, move 50 pixels down for 50ms)
 * node.simulateGesture("flick", {
 * axis: y,
 * distance: -100
 * duration: 50
 * }, function() {
 * // my callback function
 * });
 *
 * // simulate rotating a node 75 degrees counter-clockwise
 * node.simulateGesture("rotate", {
 * rotation: -75
 * });
 *
 * // simulate a pinch and a rotation at the same time.
 * // fingers start on a circle of radius 100 px, placed at top/bottom
 * // fingers end on a circle of radius 50px, placed at right/left
 * node.simulateGesture("pinch", {
 * r1: 100,
 * r2: 50,
 * start: 0
 * rotation: 90
 * });
 *
 * @method simulateGesture
 * @param {String} name The name of the supported gesture to simulate. The
 * supported gesture name is one of "tap", "doubletap", "press", "move",
 * "flick", "pinch" and "rotate".
 * @param {Object} [options] Extra options used to define the gesture behavior:
 *
 * Valid options properties for the `tap` gesture:
 *
 * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates
 * where the tap should be simulated. Default is the center of the node
 * element.
 * @param {Number} [options.hold=10] (Optional) The hold time in milliseconds.
 * This is the time between `touchstart` and `touchend` event generation.
 * @param {Number} [options.times=1] (Optional) Indicates the number of taps.
 * @param {Number} [options.delay=10] (Optional) The number of milliseconds
 * before the next tap simulation happens. This is valid only when `times`
 * is more than 1.
 *
 * Valid options properties for the `doubletap` gesture:
 *
 * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates
 * where the doubletap should be simulated. Default is the center of the
 * node element.
 *
 * Valid options properties for the `press` gesture:
 *
 * @param {Array} [options.point] (Optional) Indicates the [x,y] coordinates
 * where the press should be simulated. Default is the center of the node
 * element.
 * @param {Number} [options.hold=3000] (Optional) The hold time in milliseconds.
 * This is the time between `touchstart` and `touchend` event generation.
 * Default is 3000ms (3 seconds).
 *
 * Valid options properties for the `move` gesture:
 *
 * @param {Object} [options.path] (Optional) Indicates the path of the finger
 * movement. It's an object with three optional properties: `point`,
 * `xdist` and `ydist`.
 * @param {Array} [options.path.point] A starting point of the gesture.
 * Default is the center of the node element.
 * @param {Number} [options.path.xdist=200] A distance to move in pixels
 * along the X axis. A negative distance value indicates moving left.
 * @param {Number} [options.path.ydist=0] A distance to move in pixels
 * along the Y axis. A negative distance value indicates moving up.
 * @param {Number} [options.duration=1000] (Optional) The duration of the
 * gesture in milliseconds.
 *
 * Valid options properties for the `flick` gesture:
 *
 * @param {Array} [options.point] (Optional) Indicates the [x, y] coordinates
 * where the flick should be simulated. Default is the center of the
 * node element.
 * @param {String} [options.axis='x'] (Optional) Valid values are either
 * "x" or "y". Indicates axis to move along. The flick can move to one of
 * 4 directions(left, right, up and down).
 * @param {Number} [options.distance=200] (Optional) Distance to move in pixels
 * @param {Number} [options.duration=1000] (Optional) The duration of the
 * gesture in milliseconds. User given value could be automatically
 * adjusted by the framework if it is below the minimum velocity to be
 * a flick gesture.
 *
 * Valid options properties for the `pinch` gesture:
 *
 * @param {Array} [options.center] (Optional) The center of the circle where
 * two fingers are placed. Default is the center of the node element.
 * @param {Number} [options.r1] (Required) Pixel radius of the start circle
 * where 2 fingers will be on when the gesture starts. The circles are
 * centered at the center of the element.
 * @param {Number} [options.r2] (Required) Pixel radius of the end circle
 * when this gesture ends.
 * @param {Number} [options.duration=1000] (Optional) The duration of the
 * gesture in milliseconds.
 * @param {Number} [options.start=0] (Optional) Starting degree of the first
 * finger. The value is relative to the path of the north. Default is 0
 * (i.e., 12:00 on a clock).
 * @param {Number} [options.rotation=0] (Optional) Degrees to rotate from
 * the starting degree. A negative value means rotation to the
 * counter-clockwise direction.
 *
 * Valid options properties for the `rotate` gesture:
 *
 * @param {Array} [options.center] (Optional) The center of the circle where
 * two fingers are placed. Default is the center of the node element.
 * @param {Number} [options.r1] (Optional) Pixel radius of the start circle
 * where 2 fingers will be on when the gesture starts. The circles are
 * centered at the center of the element. Default is a fourth of the node
 * element width or height, whichever is smaller.
 * @param {Number} [options.r2] (Optional) Pixel radius of the end circle
 * when this gesture ends. Default is a fourth of the node element width or
 * height, whichever is smaller.
 * @param {Number} [options.duration=1000] (Optional) The duration of the
 * gesture in milliseconds.
 * @param {Number} [options.start=0] (Optional) Starting degree of the first
 * finger. The value is relative to the path of the north. Default is 0
 * (i.e., 12:00 on a clock).
 * @param {Number} [options.rotation] (Required) Degrees to rotate from
 * the starting degree. A negative value means rotation to the
 * counter-clockwise direction.
 *
 * @param {Function} [cb] The callback to execute when the asynchronouse gesture
 * simulation is completed.
 * @param {Error} cb.err An error object if the simulation is failed.
 * @for Node
 */
Y.Node.prototype.simulateGesture = function (name, options, cb) {
 Y.Event.simulateGesture(this, name, options, cb);
};
 

AltStyle によって変換されたページ (->オリジナル) /