footer.js 4.68 KB
/**
 * 尾部
 * @author: wangqing<robin.wang@yoho.cn>
 * @date: 2015/12/01
 */

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

var $returnTop = $('.return-top');
var $qrcodeHoverBox = $('.qrcode-hover-box');
var $rightFloatingLayer = $('.right-floating-layer');
var suggestFeedBackHbs = require('hbs/common/suggest-feed-back.hbs');
var $feedBackBox = $('.feed-back-box');

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

// 底部友情链接动画效果
function footerLink(num) {
    var n = 0;
    var intv = 0;
    var $linkSection = $('.footer-link-container .link-section');

    if (num <= 1) {
        return false;
    }

    function footerLinkSub() {
        intv = setInterval(function() {
            var top = -48 * ++n;

            if (n >= num) {
                n = 0;
                $linkSection.css({top: 48}).animate({top: 0}, 200);
                return true;
            }

            $linkSection.animate({top: top}, 300);
        }, 3000);
    }

    footerLinkSub();

    $linkSection.hover(function() {
        clearInterval(intv);
    }, function() {
        footerLinkSub();
    });
}

footerLink(Math.ceil($('.link-section').height() / 48));

/**
 * 订阅
 * @return {[type]} [description]
 */
function actionSubscription() {
    var $subscriberBox = $('#subscriber-box'),
        $subscriberBtn = $('#subscriber-btn'),
        emailReg = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/;

    var iconCode = {
        mail: '&#xe601;',
        tick: '&#xe605;'
    };

    $subscriberBox.focus(function() {
        $(this).val('').css('color', '');
        $subscriberBtn.removeClass('done').html(iconCode.mail);
    });

    $subscriberBtn.click(function() {
        var email = $.trim($subscriberBox.val());

        if (email !== '' && emailReg.test(email)) {
            try {
                $.ajax({
                    url: '//www.yohobuy.com/common/emailsubscriber',
                    dataType: 'jsonp',
                    data: {
                        email: email,
                        tmp: Math.random(),
                        uid: window.getUid()
                    },
                    success: function(data) {
                        if (data.data.result === 1) {
                            $subscriberBox.val('已订阅到:' + email);
                            $subscriberBtn.addClass('done').html(iconCode.tick);
                        } else {
                            $subscriberBox.css('color', 'red');
                        }
                    }
                });
            } catch (e) {
                console.log(e.message);
            }
        } else {
            $subscriberBox.css('color', 'red');
        }
    });
}

function actionhomeFootChange() {

    var param = {
        return_type: 'jsonp',
        client_secret: 'web',
        code: 200
    };

    // 意见反馈
    $feedBackBox.on('click', '#feed-back-page span', function() {
        var $this = $(this);

        if ($this.hasClass('cur')) {
            return;
        }

        $this.siblings('.cur').removeClass('cur');
        $this.addClass('cur');
        $feedBackBox.find('.vote').children('li').not('.hide').addClass('hide')
            .end()
            .eq($this.index()).removeClass('hide');
    });

    return $.getJSON('//www.yohobuy.com/common/suggestfeedback?callback=?', param,
        function(suggestData) {
            if (suggestData.code === 200 && suggestData.data.length) {
                $feedBackBox.html(suggestFeedBackHbs({suggestData: suggestData.data}));
            }
        }
    );
}

function rePosReturn() {
    if ($(window).height() > $(document).height()) {
        $rightFloatingLayer.addClass('hide');
    }

    // 只在窗口高度大于文档高度的时候,隐藏返回顶部
    // else {
    //     $returnTop.removeClass('hide');
    // }
}

// 返回顶部
$returnTop.click(function() {
    $('html,body').animate({
        scrollTop: 0
    }, 500);
});

$qrcodeHoverBox.mouseenter(function() {
    window._hmt && window._hmt.push(['_trackEvent', '二维码', '右侧悬浮', '', '']);
}).click(function() {
    window._hmt && window._hmt.push(['_trackEvent', '二维码', '右侧悬浮', '', '']);
});

$(window).scroll(function() {
    if ($(window).scrollTop() === 0) {
        $rightFloatingLayer.addClass('hide');
    } else {
        $rightFloatingLayer.removeClass('hide');
    }
});

// 如果初始是隐藏的,监听图片加载,重新确定return-top的高度
if ($rightFloatingLayer.hasClass('hide')) {
    $('img').load(rePosReturn);
}

// 初始化
if ($('.yoho-footer .footertop').length) {
    actionSubscription();
    actionhomeFootChange();
}

// 暴露给有可能通AJAX改变内容的页面去用
window.rePosReturnTop = rePosReturn;