|
|
var $ = require('yoho-jquery'),
|
|
|
IScroll = require('yoho-iscroll');
|
|
|
|
|
|
var defaultOpt = {
|
|
|
navClass: '.outlet-nav'
|
|
|
};
|
|
|
|
|
|
// nav 滚动
|
|
|
function initNavScroll(opt) {
|
|
|
var $navBox,
|
|
|
iScroll,
|
|
|
_default = {
|
|
|
el: '.outlet-nav'
|
|
|
},
|
|
|
options;
|
|
|
|
|
|
// $lis,
|
|
|
iScroll;
|
|
|
options = $.extend({}, _default, opt);
|
|
|
$navBox = $(options.el);
|
|
|
|
|
|
$.extend(opt || {}, defaultOpt);
|
|
|
function scroll(index) {
|
|
|
var $ele;
|
|
|
|
|
|
$navBox = $(opt.navClass);
|
|
|
$ele = $navBox.find('li').eq(index);
|
|
|
if ($ele.length > 0) {
|
|
|
setTimeout(function() {
|
|
|
iScroll.scrollToElement($ele[0], 400);
|
|
|
}, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// $lis = $navBox.find('li');
|
|
|
iScroll = new IScroll($navBox[0], {
|
|
|
scrollX: true,
|
|
|
scrollY: false
|
|
|
});
|
|
|
|
|
|
function scroll(ele) {
|
|
|
var offset;
|
|
|
return {
|
|
|
goto: scroll
|
|
|
};
|
|
|
}
|
|
|
|
|
|
ele = ele || $navBox.find('li').eq(0)[0];
|
|
|
offset = -($navBox.find('ul').width() - 20) / 2;
|
|
|
//获取url中的参数
|
|
|
function getUrlParam(name) {
|
|
|
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); //构造一个含有目标参数的正则表达式对象
|
|
|
var r = window.location.search.substr(1).match(reg); //匹配目标参数
|
|
|
|
|
|
setTimeout(function() {
|
|
|
iScroll.scrollToElement(ele, 400, offset);
|
|
|
}, 1);
|
|
|
//返回参数值
|
|
|
if (r !== null) {
|
|
|
return decodeURIComponent(r[2]);
|
|
|
} else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$.each($navBox, function(index) {
|
|
|
iScroll = new IScroll($navBox[index], {
|
|
|
scrollX: true,
|
|
|
scrollY: false
|
|
|
});
|
|
|
});
|
|
|
//选中顶部导航
|
|
|
function activeNav() {
|
|
|
var $nav = $('#index_nav');
|
|
|
var index = getUrlParam('yh_channel');
|
|
|
|
|
|
// $navBox.on('click', 'li', function() {
|
|
|
// var $this = $(this); // eslint-disable-line
|
|
|
// var i = $this.index();
|
|
|
if (index === null) {
|
|
|
index = 0;
|
|
|
}
|
|
|
$nav.find('li').eq(index).addClass('active').siblings().removeClass('active');
|
|
|
}
|
|
|
|
|
|
// $lis.eq(i).addClass('active').siblings().removeClass('active');
|
|
|
// scroll($this[0]);
|
|
|
// });
|
|
|
|
|
|
scroll($navBox.find('.active')[0]);
|
|
|
}
|
|
|
activeNav();
|
|
|
|
|
|
module.exports = initNavScroll;
|
|
|
|
...
|
...
|
|