desc.js 3.14 KB
/**
 *  商品详情  --异步加载页面下半部分
 * @author: liangzhifeng<zhifeng.liang@yoho.cn>
 * @date: 2015/11/18
 */
var $ = require('yoho-jquery'),
    lazyLoad = require('yoho-jquery-lazyload'),
    Swiper = require('yoho-swiper'),
    loading = require('../../plugin/loading'),
    tip = require('../../plugin/tip');

var introUrl = $('#introUrl').val(),
    winH = $(window).height(),
    $productDesc,
    searching = false,
    end = false;

// 判断是否要显示向左滑动提示
function hiddenTips($ele) {
    var offsetContainer,
        offsetLastColumn;

    if ($ele.length > 0) {
        offsetContainer = $ele[0].getBoundingClientRect().right;
        offsetLastColumn = $ele.find('.swiper-slide:last-child')[0].getBoundingClientRect().right;


        if (offsetLastColumn - offsetContainer < 0) {
            $ele.next('.tips').css('display', 'none');
        } else {
            $ele.next('.tips').css('display', 'block');
        }
    }
}

// function isFlexSupport() {
//    var flex = document.createElement('p').style.flex,
//        webkitFlex = document.createElement('p').style.webkitFlex,
//        flexWrap = document.createElement('p').style.flexWrap;
//
//    if ((flex === '' || webkitFlex === '') && flexWrap === '') {
//        return true;
//    } else {
//        return false;
//    }
// }

function wrapElements(selector, count) {
    var elArr = null;

    $(selector).each(function(idx) {
        elArr = $(selector).slice(idx, idx + count);

        if (elArr.length === count && idx % count === 0) {
            $(elArr).wrapAll($('<div class="js-wraper"></div>'));
        }
    });
}



function search() {
    if (searching || end) {
        return;
    }
    searching = true;

    // alert($('#reference-swiper-container .swiper-wrapper').width());

    loading.showLoadingMask();

    $.ajax({
        type: 'GET',
        url: introUrl,
        success: function(data) {
            $productDesc = $('#productDesc');
            $productDesc.append(data);

            window.rePosFooter();

            lazyLoad($productDesc.find('img.lazy'));

            // 尺码信息左右滑动
            new Swiper('#size-swiper-container', {
                slidesPerView: 'auto'
            });

            // 模特试穿左右滑动
            new Swiper('#reference-swiper-container', {
                slidesPerView: 'auto'
            });

            hiddenTips($('#size-swiper-container'));
            hiddenTips($('#reference-swiper-container'));

            // if (!isFlexSupport()) {
            //    $('.detail .column').removeClass('column').addClass('oldbox');
            // }
            wrapElements('.detail .column', 2);
            searching = false;
            end = true;
            loading.hideLoadingMask();
        },
        error: function() {
            tip.show('网络断开连接了~');
            searching = false;
            loading.hideLoadingMask();
        }
    });
}

function scrollHandler() {
    if (!end || $(window).scrollTop() + winH >= $(document).height() - 200) {
        search();
    }
}

// srcoll to load more
$(window).scroll(function() {
    window.requestAnimationFrame(scrollHandler);
});