ionic-framework
Version:
An advanced HTML5 mobile app framework built on Angular2
49 lines (48 loc) • 1.25 kB
JavaScript
var CSS_CLICK_BLOCK = 'click-block-active';
var DEFAULT_EXPIRE = 330;
var cbEle, fallbackTimerId;
var isShowing = false;
/**
* @private
*/
var ClickBlock = (function () {
function ClickBlock() {
this._enabled = false;
}
ClickBlock.prototype.enable = function () {
cbEle = document.createElement('click-block');
document.body.appendChild(cbEle);
cbEle.addEventListener('touchmove', function (ev) {
ev.preventDefault();
ev.stopPropagation();
});
this._enabled = true;
};
ClickBlock.prototype.show = function (shouldShow, expire) {
if (this._enabled) {
if (shouldShow) {
show(expire);
}
else {
hide();
}
}
};
return ClickBlock;
})();
exports.ClickBlock = ClickBlock;
function show(expire) {
clearTimeout(fallbackTimerId);
fallbackTimerId = setTimeout(hide, expire || DEFAULT_EXPIRE);
if (!isShowing) {
cbEle.classList.add(CSS_CLICK_BLOCK);
isShowing = true;
}
}
function hide() {
clearTimeout(fallbackTimerId);
if (isShowing) {
cbEle.classList.remove(CSS_CLICK_BLOCK);
isShowing = false;
}
}