Sha256: caa3cc1b8c8220b4c398bbc08c650aa4de13696828e7eaf9fe591107f0a86345

Contents?: true

Size: 1.08 KB

Versions: 7

Compression:

Stored size: 1.08 KB

Contents

/*
---

name: Pinch

description: Provides a custom pinch event for touch devices

authors: Christopher Beloch (@C_BHole), Christoph Pojer (@cpojer)

license: MIT-style license.

requires: [Core/Element.Event, Custom-Event/Element.defineCustomEvent, Browser.Features.Touch]

provides: Pinch

...
*/

if (Browser.Features.Touch) (function(){

var name = 'pinch',
	thresholdKey = name + ':threshold',
	disabled, active;

var events = {

	touchstart: function(event){
		if (event.targetTouches.length == 2) active = true;
	},

	touchmove: function(event){
		event.preventDefault();

		if (disabled || !active) return;

		var threshold = this.retrieve(thresholdKey, 0.5);
		if (event.scale < (1 + threshold) && event.scale > (1 - threshold)) return;

		active = false;
		event.pinch = (event.scale > 1) ? 'in' : 'out';
		this.fireEvent(name, event);
	}

};

Element.defineCustomEvent(name, {

	onSetup: function(){
		this.addEvents(events);
	},

	onTeardown: function(){
		this.removeEvents(events);
	},

	onEnable: function(){
		disabled = false;
	},

	onDisable: function(){
		disabled = true;
	}

});

})();

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lsd_rails-0.1.6 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1.5 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1.4 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1.3 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1.2 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1.1 Packages/mootools-mobile/Source/Touch/Pinch.js
lsd_rails-0.1 Packages/mootools-mobile/Source/Touch/Pinch.js