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

你说的效果是,点击导航项时也切换到相关图片这个效果么?

可以参考案例中的这部分代码:

http://climg.mukewang.com/59a7849d00015fbe06780254.jpg

祝学习愉快!


0

0 学习 · 36712 问题

查看课程

相似问题