本文介绍使用jQuery实现的Tab选项卡与页面滚动联动特效。点击导航可平滑滚动至对应板块,同时页面滚动时导航栏自动高亮当前区域。文章提供了完整的JavaScript逻辑与HTML结构代码,适用于需要内容分区展示且希望提升用户体验的网页设计场景。
jQuery Tab滚动联动特效概述
本文分享一个使用jQuery编写的Tab选项卡切换特效实例,供开发者参考。
该特效主要实现两个功能:一是点击顶部Tab导航时,页面平滑滚动至下方对应的内容板块;二是当用户通过鼠标滚动页面时,顶部的Tab导航会根据当前可视区域自动切换并高亮显示对应的板块。


JavaScript核心逻辑实现
在JavaScript实现上,分别处理了两个交互动作:一是点击导航链接时,计算目标板块位置并执行滚动动画;二是监听窗口滚动事件,根据当前滚动高度判断当前所在的板块,并更新Tab的高亮状态。具体JavaScript代码如下:
$(document).ready(function(){
$('.switch-tab>li').click(function(){
var s=$('.switch-tab>li').index(this);
$('body,html').animate({scrollTop:$('.tab-content>.tab-panel:eq('+s+')').offset().top-50},200);
});
var DT=$('.switch-tab').offset().top;
$(window).scroll(function(){
var wt=$(window).scrollTop(),l=$('.tab-content>.tab-panel'),s=l.length-1;
if(wt<DT||wt>=l.last().offset().top+l.last().height()+50){
$('.switch-tab').removeClass('fixed');
$('.switch-tab>li:first').addClass('active').siblings().removeClass('active');
}else{
$('.switch-tab').addClass('fixed');
for(var i=0;i<s;i++){
if(wt>=parseInt(l.eq(i).offset().top-50)&&wt<parseInt(l.eq(i+1).offset().top-50)){
s=i;
break;
}
}
$('.switch-tab>li:eq('+s+')').addClass('active').siblings().removeClass('active');
}
});
});
HTML结构代码
对应的HTML结构如下:
<div class="switch-nav">
<ul class="switch-tab">
<li><a href="javascript:; ">拉托红酒</a></li>
<li><a href="javascript:; ">法国酒庄风情</a></li>
<li><a href="javascript:; ">红酒包装</a></li>
<li><a href="javascript:; ">个性定制</a></li>
</ul>
</div>
<div class="tab-content">
<div class="tab-panel" id="cpxq">
1111
</div>
<div class="tab-panel" id="cpxq">
222
</div>
<div class="tab-panel" id="cpxq">
333
</div>
<div class="tab-panel" id="cpxq">
444
</div>
</div>
以上就是本文的全部内容,希望对大家的学习有所帮助。