index.js 2.5 KB
/**
 * 个人中心首页
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2016/2/17
 */

var $ = require('yoho.jquery');

require('./order-block');

//关闭消息提示
$('#close-message').click(function() {
    $('.message-tip').slideUp(200);
});

/**
 *
 * @param self 点击的控件
 * @param $ul 列表父
 * @param page 总共页数
 * @param itemWith 子元素宽
 * @param curPage 当前页码
 * @param num 一页商品数量
 */
function pageChange(self, $ul, page, itemWith, curPage, num) {
    var $this = self,
        left;

    if ($this.hasClass('next')) {

        //第2页显示前翻按钮
        if (curPage === 2) {
            $this.siblings().removeClass('no-visible');
        }

        //最后一页隐藏后翻按钮
        if (curPage === page) {
            $this.addClass('no-visible');
        }
    } else {

        //倒数第2页显示后翻按钮
        if (curPage === page - 1) {
            $this.siblings().removeClass('no-visible');
        }

        //第1页隐藏前翻按钮
        if (curPage === 1) {
            $this.addClass('no-visible');
        }
    }

    left = -num * (curPage - 1) * itemWith;

    $ul.animate({
        marginLeft: left
    }, 400);
}

//新品上架
(function() {
    var $naPager = $('.na-pager'),
        $rcPager = $('.rc-pager'),
        $naUl = $('.new-arrival ul'),
        $rcUl = $('.recommend ul'),
        naPage = Math.ceil($naUl.children('li').length / 5),
        rcPage = Math.ceil($rcUl.children('li').length / 6),
        naItemWith = $naUl.children('li:last-child').outerWidth(),
        rcItemWith = $rcUl.children('li:last-child').outerWidth(),
        naCurPage = 1,
        rcCurPage = 1;

    $naUl.width($naUl.width() * naPage);
    $rcUl.width($rcUl.width() * rcPage);

    //最新上架翻页
    $naPager.click(function() {
        var $this = $(this);

        if (naPage > 1) {
            if ($this.hasClass('next')) {
                ++naCurPage;
            } else {
                --naCurPage;
            }
            pageChange($this, $naUl, naPage, naItemWith, naCurPage, 5);
        }
    });

    //为你推荐翻页
    $rcPager.click(function() {
        var $this = $(this);

        if (rcPage > 1) {
            if ($this.hasClass('next')) {
                ++rcCurPage;
            } else {
                --rcCurPage;
            }

            pageChange($this, $rcUl, rcPage, rcItemWith, rcCurPage, 6);
        }
    });
}());