jquery-tab切换,切换时滑块跟随鼠标滑动

Posted xxger前端学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery-tab切换,切换时滑块跟随鼠标滑动相关的知识,希望对你有一定的参考价值。

        tab切换在前端应用中还是比较广泛的,下面是我自己写tab切换时的方法,gif图中滑块滑动效果没那么流畅,小伙伴们将就着看吧。

下面先上html结构,样式具体写法就不展示出来了,只要注意slide滑块需要用定位方式来写,并且层级放在li文字下方。

<div id="tab-box">

<ul id="tab-head">

<span class="slide"></span>

<li class="act">javascript</li>

<li>jquery</li>

<li>HTML5</li>

<li>CSS3</li>

</ul>

<div id="tab-con">

<ul class="act">

<li>javascirpt学习第一课</li>

<li>javascirpt学习第二课</li>

<li>javascirpt学习第三课</li>

<li>javascirpt学习第四课</li>

<li>javascirpt学习第五课</li>

</ul>

<ul>

<li>jquery练习1</li>

<li>jquery练习2</li>

<li>jquery练习3</li>

</ul>

<ul>

<li>HTML5-demo1</li>

<li>HTML5-demo2</li>

</ul>

<ul>

<li>css3的使用1</li>

<li>css3的使用2</li>

<li>css3的使用3</li>

<li>css3的使用4</li>

<li>css3的使用5</li>

<li>css3的使用6</li>

<li>css3的使用7</li>

</ul>

</div>

</div>

然后就是脚本部分了:

<script type="text/javascript">

var Li = $('#tab-head li');

var slide = $('#tab-head span');


//初始打开页面时,滑块的宽度与第一个li标签的宽度相同,+20是因为li标签的padding值设为了20

var firstLi = Li.eq(0).width() + 20;

$('#tab-head .slide').width(firstLi);


//tab切换

Li.click(function() {

$(this).siblings().removeClass('act');

$(this).addClass('act');

//获取该li的索引值

var index = $(this).index();

$('#tab-con ul').eq(index).siblings().removeClass('act');

$('#tab-con ul').eq(index).addClass('act');

});

//鼠标移动时,滑块跟随鼠标移动

Li.mouseover(function() {

var left = $(this).position().left;

//li的宽度+20px的padding值

var width = $(this).width() + 20;

//停止正在做的动效(为了让滑块移动连贯,去掉后滑块每次会恢复原位再移动)

slide.stop();

//$(selector).animate({params},speed,callback);  callback是动画完成后所执行的函数名称

slide.animate({

'left': left,

'width': width

}, '350');

});

//鼠标移出时,滑块恢复到当前有类名act的位置

Li.mouseout(function() {

var left = $('#tab-head .act').position().left;

var width = $('#tab-head .act').width() + 20;

slide.stop();

slide.animate({

'left': left,

'width': width

}, '350');

});

</script>


以上是关于jquery-tab切换,切换时滑块跟随鼠标滑动的主要内容,如果未能解决你的问题,请参考以下文章

Selenium自动化时滑块验证处理

微信小程序tab切换,可滑动切换,导航栏跟随滚动实现

鼠标滑动一次切换一个页面HTML+CSS+JS

炫酷的花式滑块滑动无缝切换特效

炫酷的花式滑块滑动无缝切换特效

炫酷的花式滑块滑动无缝切换特效