nav.js 1.49 KB
var $ = require('yoho-jquery'),
    IScroll = require('yoho-iscroll');

// nav 滚动
function initNavScroll(opt) {
    var $navBox,
        iScroll,
        _default = {
            el: '.outlet-nav'
        },
        options;

    options = $.extend({}, _default, opt);
    $navBox = $(options.el);

    function scroll(index) {
        var $ele;

        $ele = $navBox.find('li').eq(index);
        if ($ele.length > 0) {
            setTimeout(function() {
                iScroll.scrollToElement($ele[0], 400);
            }, 1);
        }
    }

    iScroll = new IScroll($navBox[0], {
        scrollX: true,
        scrollY: false,
        mouseWheel: true,
        scrollbars: true,
        probeType: 3,
        preventDefault: false,
        click: true
    });

    return {
        goto: scroll
    };
}

// 获取url中的参数
function getUrlParam(name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); // 构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg);  // 匹配目标参数

    // 返回参数值
    if (r !== null) {
        return decodeURIComponent(r[2]);
    } else {
        return null;
    }
}

// 选中顶部导航
function activeNav() {
    var $nav = $('#index_nav');
    var index = getUrlParam('yh_channel') || getUrlParam('type');

    if (index === null) {
        index = 0;
    }
    $nav.find('li').eq(index).addClass('active').siblings().removeClass('active');
}


activeNav();

module.exports = initNavScroll;