desc.js 2.31 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 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);

            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'));

            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);
});