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

    // loading = require('plugin/loading'),
    tip = require('plugin/tip');

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

$('#is-deposit-advance').on('click', function() {
    tip.show('只能在有货App购买');
});

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

    if ($ele.length > 0) {
        offsetContainer = $ele[0].getBoundingClientRect().right;

        if ($ele.find('.swiper-slide:last-child')[0]) {
            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() {
//    let 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) {
//     let 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 || !introUrl) {
        return;
    }
    searching = true;

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

    $.ajax({
        type: 'GET',
        url: introUrl,
        success: function(data) {
            if (typeof data === 'string') {
                data = data.replace(/https?:/gi, '');
            }

            $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();

            // 视频埋点
            $('video').on('play', function() {
                let _channel = window.cookie('_Channel');
                let cid = {
                    boys: 1,
                    girls: 2,
                    kids: 3,
                    lifestyle: 4
                }[(_channel ? _channel : 'boys')];
                let pid = $('#productId').val();

                window._yas.sendCustomInfo({
                    op: 'YB_GDS_DT_VIDEO_C',
                    param: JSON.stringify({
                        C_ID: cid,
                        PRD_ID: pid,
                    }),
                }, true);
            });

            window.rePosFooter && window.rePosFooter();
        },
        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);
});