HTML代码:
<div id="notice" class="notice">
<!-- 标题-->
<div id="notice-tit" class="notice-tit">
<ul>
<li><a href="#">公告</a></li>
<li><a href="#">规则</a></li>
<li><a href="#">论坛</a></li>
<li><a href="#">安全</a></li>
<li class="select"><a href="#">公益</a></li>
</ul>
</div>
<!-- 内容-->
<div id="notice-con" class="notice-con">
<div class="mod" style="display: none">
<ul>
<li><a href="#">张勇:要玩快乐足球</a></li>
<li><a href="#">阿里2000万驰援灾区!</a></li>
<li><a href="#">旅游宝让你边玩边赚钱</a></li>
<li><a href="#">多行跟进阿里信用贷款</a></li>
</ul>
</div>
<div class="mod" style="display: none">
<ul>
<li><a href="#"><span><a href="">[通知]</a></span>“滥发”即将换新</a></li>
<li><a href="#"><span><a href="">[通知]</a></span>比特币严管啦!</a></li>
<li><a href="#"><span><a href="">[通知]</a></span>禁发商品名录</a></li>
<li><a href="#"><span><a href="">[通知]</a></span>商品属性限制</a></li>
</ul>
</div>
<div class="mod" style="display: none">
<ul>
<li><a href="#">个人信息要严管</a></li>
<li><a href="#">个人信息要严管</a></li>
<li><a href="#">个人信息要严管</a></li>
<li><a href="#">个人信息要严管</a></li>
</ul>
</div>
<div class="mod" style="display: none">
<ul>
<li><a href="#">禁发商品名录</a></li>
<li><a href="#">禁发商品名录</a></li>
<li><a href="#">禁发商品名录</a></li>
<li><a href="#">禁发商品名录</a></li>
</ul>
</div>
<div class="mod" style="display: block">
<ul>
<li><a href="#">商品属性限制</a></li>
<li><a href="#">商品属性限制</a></li>
<li><a href="#">商品属性限制</a></li>
<li><a href="#">商品属性限制</a></li>
</ul>
</div>
</div>
</div>
css效果
*{ margin: 0; padding: 0; list-style: none; font-size: 12px; }
.notice{ width: 298px; height: 98px; margin: 10px; border: 1px solid #eee; overflow: hidden; }
.notice-tit{ height: 27px; position: relative; background: #f7f7f7; }
.notice-tit ul { position: absolute; width: 301px;//边框重合 left: -1px; }
.notice-tit ul li{ float: left; width: 58px; height: 26px; padding: 0 1px; line-height: 26px; text-align: center; overflow: hidden; background: #f7f7f7; border-bottom: 1px solid #eee; }
/*li选中的样式*/
.notice-tit ul li.select { background: #fff; border-bottom: 1px solid #fff; border-left: 1px solid #eee; border-right: 1px solid #eee; /*去除填充*/ padding: 0; font-weight: bolder; }
/*.notice-tit ul li a{*/
/*display: block;*/
/*}*/
.notice ul li a:link, .notice-tit ul li a:visited{ text-decoration: none; color: #000; }
/*鼠标滑过颜色的变化*/
.notice ul li a:hover{ color: #f90; }
.notice-con .mod{ margin: 10px 10px 10px 19px; }
.notice-con .mod ul { overflow: hidden; }
.notice-con .mod ul li{ float: left; width: 134px; height: 25px; overflow: hidden; }
当鼠标点击或者滑过时切换,JS代码如下:
function $(id) {
return typeof id === 'string' ? document.getElementById(id):id;
}
window.onload = function () {
//获取鼠标滑过或点击的标签和要切换内容的元素
var titles = $('notice-tit').getElementsByTagName('li');
var divs = $('notice-con').getElementsByTagName('div');
//alert(titles.length);
//alert(divs.length);
if(titles.length != divs.length){
return;
}
//遍历titles下的所有的li
for(var i=0; i < titles.length; i++){
titles[i].id = i;
titles[i].onmouseover = function () {
//alert(this.id);
//清除所有li上的class
for(var j=0; j < titles.length;j++){
titles[j].className = '';
divs[j].style.display = 'none';
}
//设置当前为高亮显示
this.className = 'select';
divs[this.id].style.display = 'block';
}
}
鼠标滑过延迟切换
window.onload = function () {
//点击延迟加载
var index = 0;
var timer = null;
var titles = $('notice-tit').getElementsByTagName('li');
var divs = $('notice-con').getElementsByTagName('div');
if(titles.length != divs.length){
return;
}
//遍历titles下的所有的li
for(var i=0; i < titles.length; i++){
titles[i].id = i;
titles[i].onclick = function () {
//用that这个变量来引用当前滑过的li
var that = this;
//如果存在准备执行的定时器,立即清除
if(timer){
clearTimeout(timer);
timer = null;
}
timer = setTimeout(function () {
//清除所有li上的class
for(var j=0; j < titles.length;j++){
titles[j].className = '';
divs[j].style.display = 'none';
}
//this当前属于window对象
titles[that.id].className = 'select';
divs[that.id].style.display = 'block';
},500);
}
}
}
自动切换
//自动切换
window.onload = function () {
//当前高亮显示的页面的索引
var index = 0;
var timer = null;
//获取所有的页签和要切换的内容
var lis = $('notice-tit').getElementsByTagName('li');
var divs = $('notice-con').getElementsByTagName('div');
//遍历每一个叶签给它们绑定事件
for(var i=0;i<lis.length;i++){
lis[i].onmouseover = function () {
index = this.id;
clearInterval(timer);
changeOption(this.id);
}
//鼠标离开事件
lis[i].onmouseout = function () {
//添加定时器,改变当前高亮的索引
timer = setInterval(autoPlay,2000);
}
}
//添加定时器,改变当前高亮的索引
if(timer){
clearInterval(timer);
timer = null;
}
timer = setInterval(autoPlay,2000);
//自动播放
function autoPlay() {
index++;
if(index>=lis.length){
index = 0;
}
changeOption(index);
}
function changeOption(curIndex){
for(var j=0;j<lis.length;j++){
lis[j].className = '';
divs[j].style.display = 'none';
}
//高亮显示
lis[curIndex].className = 'select';
divs[curIndex].style.display = 'block';
index = curIndex;
}
}
折叠列表
HTML&CSS
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css"> *{margin:0; padding:0; font-size:13px; list-style:none;} .menu{width:210px; margin:50px auto; border:1px solid #ccc;} .menu p{height:25px; line-height:25px; font-weight:bold; background:#eee; border-bottom:1px solid #ccc; cursor:pointer; padding-left:5px;} .menu div ul{display:none;} .menu li{height:24px; line-height:24px; padding-left:5px;} </style>
</head>
<body>
<div class="menu" id="menu">
<div>
<p>Web前端</p>
<ul style="display:block">
<li>JavaScript</li>
<li>DIV+CSS</li>
<li>jQuery</li>
</ul>
</div>
<div>
<p>后台脚本</p>
<ul>
<li>PHP</li>
<li>ASP.net</li>
<li>JSP</li>
</ul>
</div>
<div>
<p>前端框架</p>
<ul>
<li>Extjs</li>
<li>Esspress</li>
<li>YUI</li>
</ul>
</div>
</div>
</body>
</html>
JS代码
<script type="text/javascript"> window.onload=function(){ // 将所有点击的标题和要显示隐藏的列表取出来 var menu = document.getElementById('menu'); var titles = menu.getElementsByTagName('p'); var uls = menu.getElementsByTagName('ul'); // 遍历所有要点击的标题且给它们添加索引及绑定事件 for(var i=0;i<titles.length;i++){ titles[i].id = i; titles[i].onclick=function(){ var ul = uls[this.id]; if(ul.style.display == 'block'){ ul.style.display = 'none'; }else{ ul.style.display = 'block'; } } } } </script>
焦点轮播图效果
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style> *{margin:0; padding:0; list-style:none;} .wrap{height:170px; width:490px; margin:60px auto; overflow: hidden; position: relative; margin:100px auto;} .wrap ul{position:absolute;} .wrap ul li{height:170px;} .wrap ol{position:absolute; right:5px; bottom:10px;} .wrap ol li{height:20px; width: 20px; background:#ccc; border:solid 1px #666; margin-left:5px; color:#000; float:left; line-height:center; text-align:center; cursor:pointer;} .wrap ol .on{background:#E97305; color:#fff;} </style>
<script type="text/javascript"> window.onload=function(){ var wrap=document.getElementById('wrap'), pic=document.getElementById('pic'), list=document.getElementById('list').getElementsByTagName('li'), index=0, timer=null; if(timer){ clearInterval(timer); timer = null; } timer = setInterval(autoPlay,2000); // 定义并调用自动播放函数 function autoPlay() { index++; if(index>=list.length){ index = 0; } changeOption(index); } // 定义图片切换函数 function changeOption(curIndex){ for(var i=0;i<list.length;i++){ list[i].className=''; } list[curIndex].className='on'; pic.style.top = -170*curIndex+'px'; index = curIndex; } // 鼠标划过整个容器时停止自动播放 wrap.onmouseover = function(){ if(timer){ clearInterval(timer); timer = null; } } // 鼠标离开整个容器时继续播放至下一张 wrap.onmouseout = function(){ timer = setInterval(autoPlay,2000); } // 遍历所有数字导航实现划过切换至对应的图片 for(var i=0;i<list.length;i++){ list[i].id = i; list[i].onmouseover=function() { changeOption(this.id); } } } </script>
</head>
<body>
<div class="wrap" id='wrap'>
<ul id="pic">
<li><img src="http://img.mukewang.com/54111cd9000174cd04900170.jpg" alt=""></li>
<li><img src="http://img.mukewang.com/54111dac000118af04900170.jpg" alt=""></li>
<li><img src="http://img.mukewang.com/54111d9c0001998204900170.jpg" alt=""></li>
<li><img src="http://img.mukewang.com/54111d8a0001f41704900170.jpg" alt=""></li>
<li><img src="http://img.mukewang.com/54111d7d00018ba604900170.jpg" alt=""></li>
</ul>
<ol id="list">
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ol>
</div>
</body>
</html>