js Tab切换实例
js 实现 tab 切换
实现如下效果:
1、图片每1秒钟切换1次。
2、当鼠标停留在整个页面上时,图片不进行轮播。
3、当点击切换页的选项上时,出现该选项的对应图片,而且切换页选项的背景颜色发生相应的变化。
4、当图片发生轮播切换时,在不点击选项卡的前提下,相应的选项卡背景颜色也自动发生变化。
效果图如下:
index.html文件
<!DOCTYPE html>
<html>
<head>
<title>js导航轮播</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/script.js"></script>
</head>
<body>
<div class="main" id="main">
<div class="nav">
<ul id="ul">
<li id="0">首页</li>
<li id="1">点击看看</li>
<li id="2">会自动的</li>
<li id="3">我的网站</li>
</ul>
</div>
<div class="banner" id="banner">
<a href=""><img src="img/1.jpg" class="banner-slide"/></a>
<a href=""><img src="img/3.jpg" class="banner-slide"/></a>
<a href=""><img src="img/4.jpg" class="banner-slide"/></a>
<a href=""><img src="img/5.jpg" class="banner-slide"/></a>
</div>
</div>
</body>
</html>
style.css文件
*{margin:;padding:;}
/*导航菜单*/
body{font-family: "Microsoft YaHei";}
.main{width:602px;height:263px;margin: 20px auto;overflow: hidden;}
.nav ul{width: 600px;overflow: hidden;border: 1px solid #f3f3f3;border-bottom: #fc0;}
.nav ul li{float: left;list-style: none;width: 150px;text-align: center;background-color: #fff;padding: 5px 0;border-radius: 5px;cursor: pointer;}
.nav ul .active{background-color: #fc0;font-weight: bold;cursor: pointer;}
/*轮播图*/
.banner{width:602px;overflow: hidden;position: relative;}
img{width: 100%;}
img .banner-slide{vertical-align: bottom;position: absolute;display: none;}
script.js文件
//封装一个代替getElementById()的方法
function $(id){
return typeof(id) === "string"?document.getElementById(id):id;
} window.onload=function(){
var index = 0,
timer = null,
titles = $("ul").getElementsByTagName("li"),
pics = $("banner").getElementsByTagName("img"),
len = pics.length;
//初始状态设置
titles[0].className="active";
pics[0].style.display='block'; //封装一个切换的tab函数
function tab(){
//鼠标滑过是清除定时器
$("main").onmouseover=function(){
if(timer) {clearInterval(timer);}
}
//鼠标滑出时继续自动切换
$("main").onmouseout=function(){timer = setInterval(autoPlay,1000);} //遍历li,点击li时跳转到相应页面,并且li样式随之改变
for(var i=0;i<len;i++){
titles[i].id=i;
titles[i].onclick=function(){
clearInterval(timer);
changeOption(this.id);
}
$("main").onmouseout=function(){
timer = setInterval(autoPlay,1000);
}
} if(timer){
clearInterval(timer);
timer=null;
}
//添加定时器,实现每隔一秒自动切换
timer = setInterval(autoPlay,1000); //封装autoPlay自动切换函数
function autoPlay(){
index++;
if(index >= len){
index = 0;
}
changeOption(index);
}
//封装changeOption函数
function changeOption(curIndex){
for (var j=0;j<len;j++) {
titles[j].className='';
pics[j].style.display='none';
}
titles[curIndex].className="active";
pics[curIndex].style.display='block';
index=curIndex;
}
}
tab(); }
js Tab切换实例的更多相关文章
- JS tab切换事件
$('ul.main-tab>li').on('mousedown', data, function() { var $this = $(this), $box = $('.main-tab-c ...
- JS——tab切换
排它思想: 1.先让所有的元素恢复默认值 2.再让选中的元素赋专有的值 3.干掉所有人,剩下我一个 <!DOCTYPE html> <html> <head lang=& ...
- avalon结合原生js tab切换
<div class="fishqc-tap"> <div ms-class="[@codePic!=''&&@codeInfo!='' ...
- js用户管理中心tab切换界面模板
效果体验:http://hovertree.com/texiao/js/27/ 效果图如下: 代码如下: <!DOCTYPE html> <html> <head> ...
- JS实现Tab切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js或者jq的tab切换
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- 使用swiper.js实现移动端tab切换
在项目中遇到的,要实现tab切换,我用的是swiper.js 官网:http://www.swiper.com.cn/api/start/new.html <!DOCTYPE html> ...
- bootstrap 标签页tab切换js(含报错原因)
booststrap 标签页的tab切换,相信大家已经都很熟悉了,在boot官网示例以及其他网站已经很多罗列相关代码的了,这里就不赘述了.这里主要贴下让boot标签页默认显示哪个标签页的js. 主要留 ...
- js实现弹出窗口+遮罩层+tab切换
[功能1]点击约谈按钮,弹出对话框和遮罩层(自己的叫法 专业叫法没有查) [部分重点代码] [下面的方法] (1)获取系统时间如何实现(2)点击如何实现弹出窗口和遮罩层 $(".date_n ...
随机推荐
- obj 格式注意事项
用Adreno Profiler分析图形效果的实现过程时,需要将特效涉及到的模型导出,以便进行多角度的详细查看,结果发现Adreno Profiler导出模型的功能有bug,总是报错并生成一个残缺的. ...
- AngularJS实现鼠标右键事件
常规javascript鼠标右键直接在标签上加contextmenu="alert('a')"即可,现在angular通过directive来定义一个右键指令. app.direc ...
- java的装箱拆箱是什么?
是什么? 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱. 为什么 把 ...
- javac编译出来的程序运行报错“错误: 找不到或无法加载主类”
使用javac编译java文件生成class文件 >javac HelloWorld.java执行class文件>java HelloWorld 原因: 含有包名 解决办法: 按照包的结构 ...
- win7下如何显示缅文和使用缅文输入法?
windows 7 操作系统默认不支持缅文,所以缅文在win7上不能显示,当然也没有提供缅文输入法. 一.显示缅文 windows系统下显示缅文字母只需要安装缅文字体就可以了.目前常见的缅文字体就是Z ...
- 基于 jQuery支持移动触摸设备的Lightbox插件
Swipebox是一款支持桌面.移动触摸手机和平板电脑的jquery Lightbox插件.该lightbox插件支持手机的触摸手势,支持桌面电脑的键盘导航,并且支持视频的播放. 在线预览 源码下 ...
- love2d教程31--Tiled地图存档和动态修改
Advanced-Tiled-Loader有点问题,我给作者发信,可惜作者没回. 好吧,毛主席教导我们“自己动手,丰衣足食”,只好自己修改了. 1.想把0.8里的函数改为0.9的 2.添加获取对象层里 ...
- C语言 · P1001(大数乘法)
算法提高 P1001 时间限制:1.0s 内存限制:256.0MB 当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法.具体 ...
- 常见linux内核线程说明
ps进程名有方括号的是内核级的进程,执行辅助功能(比如将缓存写入到磁盘):所有其他进程都是使用者进程.您会注意到,就算是在您新安装的(最小化的)系统中,也会有很多进程在运行. 在文档kernel-pe ...
- struts2 OGNL ValueStack概念理解 # % $ 的区别
http://blog.csdn.net/tjujacob/article/details/8117659 —————————————————————————————————————————————— ...