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

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

var sizeSwiper,
    refSwiper;


//判断是否要显示向左滑动提示
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) {
    $(selector).each(function(idx, el) {
        if (idx % count === 0) {
            $($(selector).slice(idx, idx + count)).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'));

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

            //模特试穿左右滑动
            refSwiper = 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() - 50) {
        search();
    }
}

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