为什么我的轮播会一次性播完三张图片呢

为什么我的轮播会一次性播完三张图片呢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/style.css" />
    </head>
    <body >
        <div class="main" id="main">
            <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>
 
            </div>
            <div>
                <a href="javascript:void(0)" class="button prev"></a>
                <a href="javascript:void(0)" class="button next"></a>
                <div class="dots">
                    <span class="active"></span>
                    <span></span>
                    <span></span>
                </div>
            </div>
        </div>
        <script src="js/script.js"></script>
    </body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
* {
    margin0px;
    padding0px;
}
ul{
    list-stylenone;
}
body{
    font-family"微软雅黑";
    color#14191e;
}
.main{ 
    width1200px;
    height460px;
     margin30px auto
     overflowhidden
     positionrelative;
}
.banner{
     
    width1200px;
    height460px;
    overflowhidden
    positionrelative
}
.banner-slide{
    width1200px;
    height460px;
    positionabsolute
    background-repeatno-repeat;
    displaynone;
     
}
.slide-active{
    displayblock;
}
.slide1{
    background-imageurl(../img/bg1.jpg);
     
     
}
.slide2{
    background-imageurl(../img/bg2.jpg);
     
}
.slide3{
    background-imageurl(../img/bg3.jpg);
     
}
.button{
    positionabsolute;
 
    width40px;
    height80px;
    left244px;
    top:50%;
    margin-top:-40px ;
     
    background:url(../img/arrow.png) no-repeat center center;
}
.button:hover{
    background-color#333;
    opacity: 0.5;
     
}
.prev{
    transform: rotate(180deg);
}
.next{
    leftauto;
    right0;
}
.dots{
    positionabsolute;
    right0;
    bottom24px;
    text-alignright;
}
.dots span{
    display: inline-block;
    height12px;
    width12px;
    border-radius: 50%;
    background: rgba(1,17,27,0.4);
    margin-right8px;
    box-shadow:  0 0 2px 2px rgba(255,255,255,0.8inset
    /* border: 1px solid white ; */
    cursorpointer;
}
.dots span.active{
    box-shadow: 0 0 0 2px rgba(7,17,27,0.4inset;
    background#fff;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function byId(id) {
    return typeof(id) === "string" ? document.getElementById(id) : id;
}
var index = 0;
timer = null;
pics = byId("banner").getElementsByTagName("div");
len = pics.length;
 
function slideImg() {
    var main = byId("main");
    main.onmouseover = function() {
 
    }
    main.onmouseout = function() {
        timer = setInterval(function() {
 
            if (index >= len) {
                index = 0;
            }
            changeImg();
            index++;
             
        }, 2000);
    }
}
function changeImg(){
    forvar i=0;i<len;i++){
    pics[i].style.display='none';  
    }
    pics[index].style.display='block';
    console.log(index);
     
}
slideImg();


正在回答

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

1回答

同学你好,一开始轮播图是正常运转的,当鼠标滑过时,才会出现一次性播完三张图片的问题,

同学在js中添加这句代码试试:

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

在没加这句话之前,同学可以看一下,在3-5 图片的自动轮播和停止课程中,老师的2分45秒左右,也会出现同学出现的这个问题

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!



  • 老师讲课的时候好像并没有意识到这个问题吧,当时讲的是鼠标停留画面不会切换的这个功能,我想问问这是为什么会出这个问题,我看有其他的同学也出现了这个问题,我参考之后修改了时间间隔结果就正常了呢
    2019-09-07 16:16:05
  • 同学你好,是的,老师没有讲解到这个问题,非常抱歉,这里是因为,如果不加这个清除定时器的函数,则每次鼠标移入,都会累加一个计时器,相当于每次移入都会添加一个计时器哦。所以这里鼠标滑过时,可以清除之前的定时器,就不会出现这个问题了。祝学习愉快。
    2019-09-07 17:02:08
  • 听你这么一说茅塞顿开,谢谢!
    2019-09-07 17:25:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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