选项卡是一个神奇的网页效果,不论大小网站,比如B2B像阿里巴巴,慧聪网,还有B2C这个不用说了吧,爱逛网店的童鞋们都知道的,像京东商城,淘宝网,拍拍网,一号店,凡客诚品,等等各种网各种网店,选项卡不仅仅是tab切换还有很多的动画效果,爱学习的同学请作为参考,谢谢!

*学习者须有html+css基础:

选项卡的核心代码如下:

样式表现:

<style>

*{margin:0;padding:0;}

body{margin:0;padding:0; font-size:12px; color:#333;}

ul,li{ list-style:none;}

.box{ width:200px; height:200px; border:1px #666666 solid; margin:40px auto;}

.tab_title li{ float:left; width:50px; height:30px; cursor:pointer; text-align:center; line-height:30px; background:#CCC;}

.tab_title li.hover{ background:#999; color:#FFF;}

.main_box{ clear:both; height:170px; width:200px; overflow:hidden;}

.hbox{ height:1000px;}*/

.main_box div{ height:170px; text-align:center; line-height:60px; background:#333; color:#CCC;}

/*.hbox{ width:1000px;}

.hbox div{ float:left; width:200px; height:170px; text-align:center; line-height:60px; background:#333; color:#CCC;}

*/

</style>

Html结构

<div class="box">

<div class="tab_title">

<ul>

<li>选项1</li>

<li class="hover">选项2</li>

<li>选项3</li>

<li>选项4</li>

</ul>

</div>

<div class="main_box">

<div class="hbox">

<div>这是第1个盒子</div>

<div>这是第2个盒子</div>

<div>这是第3个盒子</div>

<div>这是第4个盒子</div>

</div>

</div>

</div>

脚本行为:

$( document).ready(function() {

$( ".tab_title li" ).mouseover(function(){

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

var height=$('.main_box div').height();

Var width=$('.hbox div').width();

$( this ).addClass( "hover" ).siblings().removeClass("hover");

//效果1      突隐突现

//$( ".main_box div").hide().eq(index).show();

//效果2     左隐左现

//$( ".main_box div").hide("fast").eq(index).show("slow");

//效果3     渐隐渐现

//$( ".main_box div").fadeOut("fast").eq(index).fadeIn(500);

//效果4     向下显示   向上隐藏

//$(".main_box div").slideUp().eq(index).slideDown();

//效果5     轮播式 上下显示

//$( ".hbox" ).stop().animate({'marginTop':-height*index},500);

//效果6     轮播式 左右显示

//$( ".hbox" ).stop().animate({'marginLeft':-width*index},500);

以上六种选项卡效果5,效果6 可以在css用定位也可不用, 如果喜欢用定位的同学应改下效果5,效果6 脚本,marginTop改成top,marginLeft改成left,即可呈现一样的效果体验。

以上六种选项卡效果均可升级,有很多选项卡鼠标滑过的时候有连连出现的状况,特别是鼠标快速来回选择的时候,可能会出现贴贴撞撞那种状态,解决方法给鼠标滑过的时候加延迟效果,会达到很好的效果:

var repeat;

$(".tab_title li").mouseover(function(){

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

var $this=$(this);

//定时器所在

repeat=setInterval(function(){

$this.addClass('hover').siblings().removeClass('hover');

$( ".hbox div").hide().eq(index).show();

},500);

$(this).mouseout(function(){clearInterval(repeat)})

});

以上六种选项卡效果均可封装函数,有很多页面中会出现两个或两个以上选项卡效果,封装为函数调用即可:

function tabf(obj1,obj2,hover){

obj1.click(function(){

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

$(this).addClass(hover).siblings().removeClass(hover);

obj2.hide().eq(index).show();

});

tabf($(".tab_title li"),$(".hbox div"),"hover");//此处是给函数传参数,调用函数

以上六种选项卡效果均可自动选项,有很多新闻信息门户网站等一些各种网络信息,选项卡可以自动更换内容,可以鼠标滑过看内容,更好的体验效果:

var repeat,

num=0,

index=$(".tab_title li").size();

$(".tab_title li").mouseover(function(){

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

$(this).addClass("hover").siblings().removeClass("hover");

$(".hbox div").stop().hide().eq(index).show();

});

$(".box").hover(function(){

clearInterval(repeat)

},function(){

repeat=setInterval(function(){

$(".tab_title li").eq(num).addClass("hover").siblings().removeClass("hover");

$(".hbox div").stop().hide().eq(num).show();

num++;

if(num>=index){num=0}

},1000)

}).trigger('mouseout');

选项卡插件封装方法,仅供参考学习:

(function(){

$.fn.donghua=function(options){

defaults={

boxli:"lis",

add:"hover",

main:""

};

var optionsed=$.extend(defaults,options);

var obj=$(this);

var lih=obj.find("li");

var $main=optionsed.main;

lih.mouseover(function(){

var index=lih.index(this);

var $this=$(this);

repeat=setInterval(function(){

$this.addClass(optionsed.add).siblings().removeClass(optionsed.add)

$(".hbox div").stop().hide().eq(index).show();

},500)

$(this).mouseout(function(){clearInterval(repeat)})

});

}

})(jQuery);

//此处为调用插件

$( document).ready(function(e) {

$(".box").donghua({boxli:"tab_title li",add:"hover",main:"hbox div"});

});

});

以上效果均是工作中所积累的经验,总结的不足之处还望谅解,希望一起学习共进步!

tab切换效果的更多相关文章

  1. CSS3 :target伪类实现Tab切换效果

    用:target伪类实现Tab切换效果真的非常简单!简单到什么程度呢?它只需要下面这些代码. style.css: .song-info { position: absolute; backgroun ...

  2. 实用CSS3属性之 :target伪类实现Tab切换效果

    CSS3 :target伪类用来改变页面中锚链接URL所指向的ID样式,例如你要改变描链接指向#tab的元素字体颜色为蓝色,哪么你可以这样写成#tab:target {color:blue} 浏览器支 ...

  3. jquery写的tab切换效果 非常简单

    自己写的一款 tab切换效果,比较简单,适合新手 <style type="text/css">*{margin:0; padding:0; font-size:12p ...

  4. CSS3 :target伪类实现Tab切换效果 BY commy

    http://www.shejidaren.com/examples/css3-target/css3-target.html#tab1 标签一 标签二 标签三 欢迎加设计达人Q群:50063010设 ...

  5. jquery另外一种类似tab切换效果

    简要:最近做项目一些效果不能用淘宝kissy框架 所以代码得自己写啊 网上当然有很多组件 但是用他们的代码很多(有的是我不需要的代码) 且还要看API 还不如自己动手写个简单一个,是这么一种简单的效果 ...

  6. vue2.0使用动态组件实现tab切换效果(vue-cli)

    <template> <div> <div>#动态组件实现tab切换效果#</div><br><br><br> &l ...

  7. Vue.js实现tab切换效果

    利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了vue后,开始要写出一些简单的特效. 1.2 实现思 ...

  8. 案例(拖拽对话框、高清放大镜、自制滚动条、元素的隐藏方式、表格隔行变色、tab切换效果、字符串拼接、刷新评论)

    一.拖拽对话框 <style> .of{ width: 500px; } #link,#close{ text-decoration: none; margin: 0 10px; font ...

  9. tab切换效果 网站中的图片自动切换

    网站中的图片自动切换 今天上一套tab切换效果的代码 动图就自己实现吧! 下面贴HTML代码,大体分两部分,图片div和按钮div,代码很容易看懂~ <!DOCTYPE html> < ...

  10. 又一Tab切换效果(js实现)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 【转】Swift之 ? 和 !

    原文地址:http://joeyio.com/ios/2014/06/04/swift---/ Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会 ...

  2. windows10 声音图标总是被禁用,检测显示:扬声器,耳机或者耳机已拔出

    参考来源:http://jingyan.baidu.com/article/90bc8fc85de19df652640c7f.html 控制面板/应用和声音/Realtek高清晰音频管理器 点击右上角 ...

  3. Xcode快捷键

    1. 文件 CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 C ...

  4. 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr

    转自http://www.blogjava.net/Todd/archive/2009/10/09/297590.html 一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP    ...

  5. Python笔记-集合,拷贝

    对于列表,元组,集合的异同,有如下解释 #list ----> 允许重复的集合,修改# tuple ----> 允许重复的集合,不修改# set ----> 不允许重复的集合下面是示 ...

  6. 扩展django的User的部分方法

    这做项目时发现django自带的User中的字段不够用,默认的auth_user表总共只有11个字段,如果需要更多的字段该怎么办,在网上搜了一下,有这么几种方法. 1. 直接修改django 源码,修 ...

  7. 阿伦学习html5 之Web SQL Database

    不知道什么情况, W3C不再维护web SQL Database规范,但是大多浏览器都支持了! Web SQL Database规范页面有着这样的声明 Web SQL Database 规范中定义的三 ...

  8. VS2010里, using System.Data.OracleClient; 不可用

    当我试图去引用System.Data.OracleClient 这个命名空间时,VS 显示不存在 但是在对象浏览器里却可以找到这个命名空间及里边的对象 另外好像也没有区分清楚 using 和Refer ...

  9. kanboard邮件通知

    1. 复制config.default.php为config.php 2. 修改一下内容 define('MAIL_TRANSPORT', 'smtp');define('MAIL_SMTP_HOST ...

  10. maven 问题解决 tools以及jconsole两个jar包 无效

    在SVN上下载项目,结果完成后出现两个jar包不存在的情况 如下图: 然后,第一步就是去查看POM.xml文件是否配置了这两个文件,结果并没有,于是就更加奇怪了 所以怀疑是不是其他maven下载的ja ...