这个轮播效果老是报错,写的没有逻辑。希望老师可以实现这种效果的代码案例学习

这个轮播效果老是报错,写的没有逻辑。希望老师可以实现这种效果的代码案例学习

http://img1.sycdn.imooc.com//climg/5c9c3ce20001fee605000243.jpg效果图

下面是需要用到的image图

http://img1.sycdn.imooc.com//climg/5c9c3d900001ca5312000460.jpg

http://img1.sycdn.imooc.com//climg/5c9c3d90000157e812000460.jpg

http://img1.sycdn.imooc.com//climg/5c9c3d9000017d3912000460.jpg

http://img1.sycdn.imooc.com//climg/5c9c3d9100019f9712000460.jpg

脚本要求(效果可参考gif图)

     1、图片每1秒钟切换1次。

     2、当鼠标停留在整个页面上时,图片不进行轮播。

     3、当点击切换页的选项上时,出现该选项的对应图片,而且切换页选项的背景颜色发生相应的变化。

     4、当图片发生轮播切换时,在不点击选项卡的前提下,相应的选项卡背景颜色也自动发生变化。

html代码:

<div class="main" id="main">

<!-- 导航 -->

<div class="nav">

<ul class="ul_nav">

<li>

<a href="">首页</a>

</li>

<li>

<a href="">点击查看</a>

</li>

<li>

<a href="">会自动的</a>

</li>

<li>

<a href="">我的网站</a>

</li>

</ul>

</div>

<!-- 图片轮播 -->

<div class="banner" id="banner">

<div class="bg_img_01 back show">

<a href="">

<img src="image/1.jpg">

</a>

</div>

<div class="bg_img_02 back">

<a href="">

<img src="image/2.jpg">

</a>

</div>

<div class="bg_img_03 back">

<a href="">

<img src="image/3.jpg">

</a>

</div>

<div class="bg_img_04 back">

<a href="">

<img src="image/4.jpg">

</a>

</div>

</div>

</div>




css代码如下

.main{

width: 1200px;

height: 500px;

background: red;

margin:20px auto;

}

.main .nav{

width: 1200px;

height: 40px;

background: blue;

}

.main .nav .ul_nav{

width: 1200px;

height: 40px;

float: left;

}

.main .nav .ul_nav li{

float:left;

display: block;

}

.main .nav .ul_nav li a{

width: 300px;

height: 40px;

text-align: center;

font-size: 16px;

line-height: 40px; 

color: #fff;

display: inline-block;

}

.main .nav .ul_nav li a:hover{

border-radius:10px 10px 0  0;

display: block;

background:yellow;

color: #000;

}

.main .banner{

width: 1200px;

height: 460px;

background: #000;

overflow:hidden;   /*隐藏*/

}

.main .banner .bg_img_01{

width: 1200px;

height:460px;


}


.main .banner .back img{

display:none;

}

.main .banner .show img{

display: block;

}




java代码

function byId(id){

return typeof(id) === "string"?document.getElementById(id):id;

}

var index=0,

timing=null, //定时器

pics = byId("banner").getElementsByTagName("div"),    //获取banner下所有的div

oimg = byId("banner").getElementsByTagName("img"),

len = pics.length;  //长度获取

 

function slideImg(){

var main =byId("main");

//滑过清除定时器i离开继续

main.onmouseover = function(){

//滑过清除定时器

}

main.onmouseout = function(){   //鼠标离开时触发代码

timing = setInterval(function(){

index++;

if(index >= len){

index = 0;

}

//切换图片

changeImg();   //图片切换函数名

},1000);

}


}

//定义切换图片函数

function changeImg(){

pics[oimg].style.display = 'block';

}



slideImg();

报错原因

http://img1.sycdn.imooc.com//climg/5c9c3eb900013ab630480944.jpg一直都在获取,一直报错一上午没弄明白是在弄不出来 

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,经测试自动轮播是没有问题的,每张图片都是隔3s切换。

选项卡点击切换不了是因为a标签有默认跳转事件,href属性中没有值,点击跳转就会刷新页面,所以每次都是一张图片显示。可以阻止一下默认跳转事件,如下:

http://img1.sycdn.imooc.com//climg/5c9c7f6400019f0707310383.jpg

自己可以再测试下,祝学习愉快!

好帮手慕星星 2019-03-28 14:14:48

你好,经测试是索引的问题,代码中设置的index是索引,oimg不是索引值哦,可以参考下图进行修改:

http://img1.sycdn.imooc.com//climg/5c9c65ee0001183210090240.jpghttp://img1.sycdn.imooc.com//climg/5c9c66150001cb7a08670374.jpg

http://img1.sycdn.imooc.com//climg/5c9c65a70001fbb506570321.jpg

同学按照要求往下面写就可以,添加上轮播停止和选项卡变化的样式即可。

如果在做的过程中遇到问题,可以随时提问。

祝学习愉快!

  • 提问者 慕斯卡9565767 #1
    还是在报错
    2019-03-28 14:51:12
  • 提问者 慕斯卡9565767 #2
    他出来了,但是第二张到第三张切换不是3秒,很赶到后面就很快,就是闪烁
    2019-03-28 15:01:01
  • 好帮手慕星星 回复 提问者 慕斯卡9565767 #3
    把你修改之后的js代码粘贴上来,老师帮助你测试下问题。
    2019-03-28 15:04:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
响应式开发与常用框架 2018
  • 参与学习           人
  • 提交作业       2198    份
  • 解答问题       5012    个

如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师