outlets.page.js 2.57 KB
/**
 * 首页
 * @author: yyq<yanqing.yang@yoho.cn>
 * @date: 2016/05/31
 */

var $ = require('yoho-jquery'),
    lazyLoad = require('yoho-jquery-lazyload');

var $limitList = $('.limit-main .good-list'),
    $fixNav = $('.sort-layer .full-line'),
    $navPar;

var limitTime = [];

// require('../common');
// require('../outlets/channel');
require('../common/slider');
require('./outlets/special');

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

function convertTime(time) {
    var anHour = 3600000,
        aMinute = 60000,
        aSecond = 1000,
        showTime = '',
        d = 0,
        h = 0,
        m = 0,
        s = 0;

    if (time > 1000) {
        d = Math.floor(time / anHour / 24);
        h = Math.floor(time / anHour % 24);
        m = Math.floor(time / aMinute % 60);
        s = Math.floor(time / aSecond % 60);

        showTime += d > 0 ? d + '天' : '';
        showTime += h > 0 ? h + '小时' : '';
        showTime += m > 0 ? m + '分钟' : '';
        showTime += s > 0 ? s + '秒' : '';
    }

    return showTime;
}

function setPageTime() {
    var i, showTime;

    for (i = 0; i < limitTime.length; i++) {
        limitTime[i].time -= 1000;
        showTime = convertTime(limitTime[i].time);
        limitTime[i].dom.text(showTime);
    }
}

function limitPageSwitch(num) {

    $limitList.animate({
        'margin-left': (-num * 10) + '0%'
    });

    $limitList.data({
        page: num
    });
}

// function formatExtraGood() {

// }
//
if ($fixNav.length) {
    $navPar = $fixNav.parent();

    $(window).scroll(function() {
        var navTop = $navPar.position().top;

        if ($(this).scrollTop() >= navTop) {
            $fixNav.addClass('fixed');
        } else {
            $fixNav.removeClass('fixed');
        }
    });
}

$('.time').each(function() {
    var data = $(this).data();

    if (data.limit) {
        limitTime.push({
            dom: $(this),
            time: data.limit
        });
    }
});

$('.good-page-btns > label').click(function() {
    var nowTime = new Date().getTime(),
        data = $limitList.data(),
        page = data.page ? data.page : 0;

    if (data.time && nowTime - data.time < 800) {
        return;
    }

    $limitList.data({
        time: nowTime
    });

    if ($(this).hasClass('pre-page-btn')) {
        if (page > 0) {
            page -= 1;
        } else {
            limitPageSwitch(-0.2);
        }
    } else {
        if (page < 2) {
            page += 1;
        } else {
            limitPageSwitch(2.2);
        }
    }

    limitPageSwitch(page);
});

setInterval(setPageTime, 1000);

$('.slide-container').slider({
    orient: true
});