html5 响应式折叠菜单,HTML5一款响应式粘性滑块导航菜单页面模板

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

class StickyNavigation {

constructor() {

this.currentId = null;

this.currentTab = null;

this.tabContainerHeight = 70;

let self = this;

$('.et-hero-tab').click(function() {

self.onTabClick(event, $(this));

});

$(window).scroll(() => {

this.onScroll();

});

$(window).resize(() => {

this.onResize();

});

}

onTabClick(event, element) {

event.preventDefault();

let scrollTop = $(element.attr('href')).offset().top - this.tabContainerHeight + 1;

$('html, body').animate({

scrollTop: scrollTop

}, 600);

}

onScroll() {

this.checkTabContainerPosition();

this.findCurrentTabSelector();

}

onResize() {

if (this.currentId) {

this.setSliderCss();

}

}

checkTabContainerPosition() {

let offset = $('.et-hero-tabs').offset().top + $('.et-hero-tabs').height() - this.tabContainerHeight;

if ($(window).scrollTop() > offset) {

$('.et-hero-tabs-container').addClass('et-hero-tabs-container--top');

} else {

$('.et-hero-tabs-container').removeClass('et-hero-tabs-container--top');

}

}

findCurrentTabSelector(element) {

let newCurrentId;

let newCurrentTab;

let self = this;

$('.et-hero-tab').each(function() {

let id = $(this).attr('href');

let offsetTop = $(id).offset().top - self.tabContainerHeight;

let offsetBottom = $(id).offset().top + $(id).height() - self.tabContainerHeight;

if ($(window).scrollTop() > offsetTop && $(window).scrollTop() < offsetBottom) {

newCurrentId = id;

newCurrentTab = $(this);

}

});

if (this.currentId != newCurrentId || this.currentId === null) {

this.currentId = newCurrentId;

this.currentTab = newCurrentTab;

this.setSliderCss();

}

}

setSliderCss() {

let width = 0;

let left = 0;

if (this.currentTab) {

width = this.currentTab.css('width');

left = this.currentTab.offset().left;

}

$('.et-hero-tab-slider').css('width', width);

$('.et-hero-tab-slider').css('left', left);

}

}

new StickyNavigation();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值