nav.js 3.02 KB
let $ = require('yoho-jquery');

let WILL_BEGIN = '即将开始';
let WILL_END = '即将结束';
let ONLINE_FORECAST = '上线预告';

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

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

//     function scroll(index) {
//         let $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,
//         tap: true,
//         eventPassthrough: true,
//         preventDefault: true
//     });

//     return {
//         goto: scroll
//     };
// }

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

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

// 获取创意生活和即将结束的index
function getOtherIndex() {
    $('#index_nav').find('li').each(function() {
        if ($(this).find('a').text() === ONLINE_FORECAST) {
            $(this).attr({
                'data-nav': 'other',
                'data-type': 3
            });
        } else if ($(this).find('a').text() === WILL_END) {
            $(this).attr({
                'data-nav': 'other',
                'data-type': 2
            });
        } else if ($(this).find('a').text() === WILL_BEGIN) {
            $(this).attr({
                'data-nav': 'other'
            });
        }
    });
}

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

    // console.log(index)

    // 判断是否有首页选项
    let flag = false;

    $nav.find('li').each(function() {
        let $this = $(this);
        let url = $this.find('a').attr('href');
        let code = getUrlParam('content_code', url);

        if (code === 'c19ffa03f053f4cac3690b22c8da26b7') {
            flag = true;
            return false;
        }

    });
    getOtherIndex();
    if (index === null) {
        index = getUrlParam('type');

        if (index === null) {
            $nav.find('li:not([data-nav="other"])').eq(0).addClass('active').siblings().removeClass('active');
        } else {
            $nav.find('li[data-type=' + index + ']').addClass('active').siblings().removeClass('active');
        }
    } else {
        if (!flag) {
            index -= 1;
        }
        $nav.find('li:not([data-nav="other"])').eq(index).addClass('active').siblings().removeClass('active');
    }

}

activeNav();


// module.exports = initNavScroll;