tab切换效果
选项卡是一个神奇的网页效果,不论大小网站,比如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切换效果的更多相关文章
- CSS3 :target伪类实现Tab切换效果
用:target伪类实现Tab切换效果真的非常简单!简单到什么程度呢?它只需要下面这些代码. style.css: .song-info { position: absolute; backgroun ...
- 实用CSS3属性之 :target伪类实现Tab切换效果
CSS3 :target伪类用来改变页面中锚链接URL所指向的ID样式,例如你要改变描链接指向#tab的元素字体颜色为蓝色,哪么你可以这样写成#tab:target {color:blue} 浏览器支 ...
- jquery写的tab切换效果 非常简单
自己写的一款 tab切换效果,比较简单,适合新手 <style type="text/css">*{margin:0; padding:0; font-size:12p ...
- CSS3 :target伪类实现Tab切换效果 BY commy
http://www.shejidaren.com/examples/css3-target/css3-target.html#tab1 标签一 标签二 标签三 欢迎加设计达人Q群:50063010设 ...
- jquery另外一种类似tab切换效果
简要:最近做项目一些效果不能用淘宝kissy框架 所以代码得自己写啊 网上当然有很多组件 但是用他们的代码很多(有的是我不需要的代码) 且还要看API 还不如自己动手写个简单一个,是这么一种简单的效果 ...
- vue2.0使用动态组件实现tab切换效果(vue-cli)
<template> <div> <div>#动态组件实现tab切换效果#</div><br><br><br> &l ...
- Vue.js实现tab切换效果
利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了vue后,开始要写出一些简单的特效. 1.2 实现思 ...
- 案例(拖拽对话框、高清放大镜、自制滚动条、元素的隐藏方式、表格隔行变色、tab切换效果、字符串拼接、刷新评论)
一.拖拽对话框 <style> .of{ width: 500px; } #link,#close{ text-decoration: none; margin: 0 10px; font ...
- tab切换效果 网站中的图片自动切换
网站中的图片自动切换 今天上一套tab切换效果的代码 动图就自己实现吧! 下面贴HTML代码,大体分两部分,图片div和按钮div,代码很容易看懂~ <!DOCTYPE html> < ...
- 又一Tab切换效果(js实现)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- .NET截取指定长度汉字超出部分以"..."代替
/// <summary> /// 将指定字符串按指定长度进行剪切, /// </summary> /// <param name= "oldStr " ...
- Calculator(1.5)
Calculator(1.5) Github链接 ps.负数的处理未完成 解题过程中遇到的困难和解决 <stack>的使用: 认真研究了栈,基本上掌握了用法,与<queue>的 ...
- JS 跑马灯
利用jquery 来实现图片切换.文字转换移动的工具. MSClass 连接 http://www.popub.net/script/MSClass.html Mark 用
- 基于Jenkins + Git的PHP项目编译脚本
本文针对的是了解或已经在使用Jenkins和Git的开发者或团队. 本团队使用了Jenkins作为持续集成平台,Git作为版本管理工具,而本人负责的项目是PHP项目,所谓发布项目就是复制文件. 通常有 ...
- class can not be find with platformType:1 step 1
使用第三方库的时候 (配合cocopods)混合使用一定要注意 为什么会出现这样的问题... 苦苦难为我半天时间 都有想打人的冲动 前天一切正常今天出来个这 原因很简单当使用cocopods的时候默认 ...
- spring注解 @Transactional
一.@Transactional所需要的jar包 1.aopalliance.jar 这个包是AOP联盟的API包,里面包含了针对面向切面的接口.(通常Spring等其它具备动态织入功能的框架依赖此 ...
- 摆花(2012Noip普及组第3题)
摆花 (flower.cpp/c/pas) [问题描述] 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n ...
- C语言程序设计第四次作业
态度决定一切,我依然要说这句话,每次同学们提交的作业,我都会认真评阅,相比实验课而言,可以有更充足的时间来发现问题,很多同学的代码依然会存在一些语法错误或者考虑不周全的现象,我提出了,那么,你认真看了 ...
- ThinkPHP学习遇到的点问题(学习中,持续更新)
1.__ROOT__变量没有值的问题 今天遇到这个比较变态的问题,可能是我技术比较菜吧,搞了一个多小时,最后发现问题可能出现在 入口文件中定义的APP_NAME的名字和项目的跟目录名称相同了,比如我网 ...
- (转)Apache实现反向代理负载均衡
说到负载均衡LVS这套技术,有很多种实现方法. 本文所说,主要就是利用apache服务器实现反向代理,实现负载均衡. 首先,传统的正向代理如下图所示,正如我们用的游戏加速代理,大多的个人PC把请求发给 ...