loading.js 1.27 KB
/**
 * Loading mask
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2015/10/29
 */

var $ = require('yoho-jquery');

var $page = $('.yoho-page');

var $loading,
    hasInit = false;

/** modify by liangzhifeng at 2015.11.2 */

// 初始化
function init($container, options) {
    var className = options && options.className || '';
    var html = '<div class="loading-mask ' + className + ' hide">' +
                    '<div class="loading">' +
                        '<div></div><div></div><div></div>' +
                    '</div>' +
               '</div>';

    hasInit = true;
    if (!$container) {
        $container = $page;
    }

    $container.append(html);

    $loading = $container.children('.loading-mask');

    $('body').on('touchstart touchmove touchend', '.loading-mask', function() {
        return false;
    });
}

// 显示loading
function showLoadingMask() {
    if (!hasInit) {
        init();
        hasInit = true;
    }
    $loading.removeClass('hide');
}

// 隐藏loading
function hideLoadingMask() {
    if (!hasInit) {
        init();
        hasInit = true;
    }
    $loading.addClass('hide');
}

exports.init = init;
exports.showLoadingMask = showLoadingMask;
exports.hideLoadingMask = hideLoadingMask;
exports.show = showLoadingMask;
exports.hide = hideLoadingMask;