@openui5/sap.ui.core
Version:
OpenUI5 Core Library sap.ui.core
127 lines (112 loc) • 3.55 kB
JavaScript
/*jslint eqeq: true, plusplus: true, undef: true, sloppy: true, vars: true, forin: true, nomen: true */
/*!
* Mobiscroll v2.9.0
* http://mobiscroll.com
*
* Copyright 2010-2013, Acid Media
* Licensed under the MIT license.
*
*/
(function ($) {
function testProps(props) {
var i;
for (i in props) {
if (mod[props[i]] !== undefined) {
return true;
}
}
return false;
}
function testPrefix() {
var prefixes = ['Webkit', 'Moz', 'O', 'ms'],
p;
for (p in prefixes) {
if (testProps([prefixes[p] + 'Transform'])) {
return '-' + prefixes[p].toLowerCase() + '-';
}
}
return '';
}
function getCoord(e, c) {
var org = e.originalEvent,
ct = e.changedTouches;
return ct || (org && org.changedTouches) ? (org ? org.changedTouches[0]['page' + c] : ct[0]['page' + c]) : e['page' + c];
}
function init(that, options, args) {
var ret = that;
// Init
if (typeof options === 'object') {
return that.each(function () {
if (!this.id) {
this.id = 'mobiscroll' + (++id);
}
if (instances[this.id]) {
instances[this.id].destroy();
}
new $.mobiscroll.classes[options.component || 'Scroller'](this, options);
});
}
// Method call
if (typeof options === 'string') {
that.each(function () {
var r,
inst = instances[this.id];
if (inst && inst[options]) {
r = inst[options].apply(this, Array.prototype.slice.call(args, 1));
if (r !== undefined) {
ret = r;
return false;
}
}
});
}
return ret;
}
function testTouch(e) {
if (e.type == 'touchstart') {
touches[e.target] = true;
} else if (touches[e.target]) {
delete touches[e.target];
return false;
}
return true;
}
var id = +new Date,
touches = {},
instances = {},
extend = $.extend,
mod = document.createElement('modernizr').style,
has3d = testProps(['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']),
prefix = testPrefix(),
pr = prefix.replace(/^\-/, '').replace(/\-$/, '').replace('moz', 'Moz');
$.fn.mobiscroll = function (method) {
extend(this, $.mobiscroll.components);
return init(this, method, arguments);
};
$.mobiscroll = $.mobiscroll || {
util: {
prefix: prefix,
jsPrefix: pr,
has3d: has3d,
getCoord: getCoord,
testTouch: testTouch
},
presets: {},
themes: {},
i18n: {},
instances: instances,
classes: {},
components: {},
defaults: {},
setDefaults: function (o) {
extend(defaults, o);
},
presetShort: function (name, c) {
this.components[name] = function (s) {
return init(this, extend(s, { component: c, preset: name }), arguments);
};
}
};
$.scroller = $.scroller || $.mobiscroll;
$.fn.scroller = $.fn.scroller || $.fn.mobiscroll;
})(jQuery);