6-2作业
来源:6-1 案例总结
慕婉清8012359
2017-08-30 15:18:24
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>实例</title> <link rel="stylesheet" href="css/css.css"> </head> <body> <!-- 切换项标题 --> <div class="main" id="main"> <div class="changeTitle" id="title-active"> <div class="Items" id="items"> <a href="#"><div class="Item item-active">首页</div></a> <a href="#"><div class="Item ">点击看看</div></a> <a href="#"><div class="Item">会自动的</div></a> <a href="#"><div class="Item">我的网站</div></a> </div> </div> <!-- 图片轮播 --> <div class="banner" id="banner"> <a href="#"> <div class="banner-slide slide1 slide-active"></div> <!-- 将图片当作背景图片来显示 --> </a> <a href="#"> <div class="banner-slide slide2 "></div> </a> <a href="#"> <div class="banner-slide slide3 "></div> </a> <a href="#"> <div class="banner-slide slide4 "></div> </a> </div> </div> </body> <script src="js/js.js"></script> </html>
*{
padding: 0;
margin:0;
font-family: "Microsoft YaHei";
font-size: 22px;
}
.main{
width: 1200px;
height: 514px;
margin: 0 auto;
}
.changeTitle{
width: 1200px;
height: 54px;
background-color: #FFF;
margin: 0 auto;
position: relative;
border-left:1px dashed;
border-right:1px dashed;
border-top: 1px dashed;
border-radius: 5px;
}
a:link,a:visited{
text-decoration: none;
color: #333;
}
.Items{
width: 1200px;
height: 54px;
line-height: 54px;
text-align: center;
}
.Item{
width: 300px;
float: left;
}
.item-active{
background-color: #FFCC00;
}
/*图片轮播*/
.banner{
width: 1200px;
height: 460px;
margin: 0 auto;
}
.banner-slide{
width: 1200px;
height: 460px;
background-repeat: no-repeat;
/*通过定位来实现图片的重叠:此时图片要相对父本banner来定位*/
position: absolute;
/*先要隐藏所有的图片,因为交互效果的实现就是通过显示和隐藏*/
display: none;
}
.slide-active{
display: block;
}
/*由于添加的轮播的图片都不一样 因此各自再次添加类*/
.slide1{
/*此时不能再使用background-repeat:url("")来设置图片,因为父元素用过了,会被覆盖,所以使用background-image来设置*/
background-image:url("../img/1.jpg");
}
.slide2{
background-image:url("../img/3.jpg");
}
.slide3{
background-image:url("../img/4.jpg");
}
.slide4{
background-image:url("../img/5.jpg");
}function byId(id){
return typeof(id)==="string"?document.getElementById(id):id;
}
var timer = null,
index = 0,
main = byId("main"),
banners = byId("banner").getElementsByTagName("div"),
titleActive = byId("items").getElementsByTagName("div"),
len = banners.length;
console.log(titleActive)
function slideTitle(){
// 鼠标滑过盒子清除定时器
main.onmouseover = function(){
if (timer) clearInterval(timer);
}
//鼠标离开main继续,图片每秒钟切换一次
main.onmouseout = function(){
timer =setInterval(function(){
index++;
//超过元素总长度3的时候就回到第一个div
if (index>=len) { //len:0 1 2 3 0
index=0;
}
//切换图片 封装一个函数
changeImg();
},1000);
}
//自动轮播
main.onmouseout ();
}
function changeImg(){
//现在的index是多少就显示当前的类,以及了该index以外的元素隐藏起来,达到元素显示的效果
//遍历banner下所有的div,将其隐藏
for (var i = 0; i <len; i++) {
banners[i].style.display = "none";
titleActive[i].className = "Item";
}
//1s间歇调用---根据index索引将当前的div显示出来
banners[index].style.display = "block";
titleActive[index].className = "Item item-active";
}
slideTitle();
老师最后那个联动的效果呈现想不出来 试了好多次都错误 ,请问我这个代码能怎么实现
1回答
小丸子爱吃菜
2017-08-31
你说的效果是,点击导航项时也切换到相关图片这个效果么?
可以参考案例中的这部分代码:

祝学习愉快!
相似问题