老师,没有实现任何效果

来源:1-13 作业题

qq_触掱钶忣倖福_0

2019-01-30 16:08:19

<!DOCTYPE html>
<html>
<head>
    <title>jquery作业</title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/jquery.css">
</head>
<body>
    <div class="main" id="main">  
        <!--轮播图-->
        <div class="banner">    
            <a href="javascript:;"><div class="banner-slide slide1 slide-active"></div></a>
            <a href="javascript:;"><div class="banner-slide slide2"></div></a>
            <a href="javascript:;"><div class="banner-slide slide3"></div></a>
            <a href="javascript:;"><div class="banner-slide slide4"></div></a>
            <a href="javascript:;"><div class="banner-slide slide5"></div></a>
        </div>
        <!--上一张,下一张-->
        <a href="javascript:vido(0)" class="button prev"></a>
        <a href="javascript:vido(0)" class="button next"></a>
        <!--圆点-->
        <div class="dots">
            <span class="activ"></span>
            <span></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
    </div>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript" src="js/jquery.js"></script>
</body>
</html>

*{
    padding: 0;
    margin: 0 ;
}
body{
     font-family:Microsoft YaHei;
}
.main{
    width: 1000px;
    height: 400px;
    margin:0px auto;
    position: relative;
    overflow: hidden;
    border:6px solid #bbb;
}

.banner-slide{
    width: 1000px;
    height: 400px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    display: none;
}
    
.slide1{
    background-image: url("img/1.jpg");
}
.slide2{
    background-image: url("img/2.jpg");
}
.slide3{
    background-image: url("img/3.jpg");
}
.slide4{
    background-image: url("img/4.jpg");
}
.slide5{
    background-image: url("img/5.jpg");
}
.slide-active{
    display: block;
}

.button{
    position: absolute;
    width: 30px;
    height:60px;
    left:0px;
    top: 50%;
    margin-top: -40px;
    
}
.button:hover{
    background-color:#bbb;
    opacity: 2;
    filter: alpha(opacity=200);
}
.prev{
    background:url("img/pre2.png") no-repeat center;
}
.next{
    left: auto;
    right: 0px;
    background:url("img/pre.png") no-repeat center;
}

.dots{
    position: absolute;
    right: 10px;
    bottom:10px;
    text-align: right;
}
.dots span{
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-left: 10px;
    background: rgba(7,17,27,0.4);
    box-shadow: 0 0 0 2px rgba(255,255,255,0.8);
    cursor:pointer;
}
.dots span.activ{
    box-shadow: 0 0 0 2px rgba(7,17,27,0.4);
    background: #fff;
}


$(function(){
        var index=0,
            timer=null,
            main=$('.main'),
            banners=$('.slide'),
            next=$('next'),
            prev=$('prev'),
            span=$('.dots span'),
            len=$('.banner.banner-slide').length;
            function slideimg(){
                //鼠标滑过时清除定时
                main.mouseover(function(){
                    clearInterval(timer)    

                })

                //鼠标离开时定时继续
                main.mouseout(function(){
                    clearInterval(timer)
                    outFn();
                })

                function outFn(){
                    timer = setInterval(function(){
                        changeImg();
                    },2000)
                }
                outFn();

                //上一张
                prev.click=function(){
                    index--;
                    if(index<0){
                        index=len-1;
                    }
                    changeImg();
                }

                //下一张
                next.click=function(){
                    index++;
                    if(index>=len){
                        index=0
                    }
                    changeImg();
                }
                //实现圆点切换
                for(var b=0;b<len;b++){
                    //给sapn标签设置一个值为b的id
                    span[b].id=b;
                    //给圆绑击事件点
                    span[b].click=function(){
                        //改变index为当前span的值,与切换图片相对应
                        index=thid.id;
                    }
                    //调用图片切换的函数
                    changeImg();
                }


                //图片轮播的动作
                function changeImg(){
                    index++;
                    if(index>len-1){
                        index=0;
                    }
                    $('.banner.banner-slide').eq(index).addClass('slide-active').parent().siblings().children().removeClass('slide-active');
                    $('.dots span').eq(index).addClass('activ').parent().siblings().removeClass('active');
                }
            }

            slideimg();
        })

写回答

3回答

山河远阔ZZ

2019-01-31

this指向的是当前点击的小圆点,小圆点就是用span标签做的,所以指向的就是当前点击的span标签。

0

山河远阔ZZ

2019-01-31

同学你好,在效果中,需要点击小圆点,就出现相对应的图片,例如:点击第二个按钮,第二张图片就要显示,那么就是圆点的索引就要跟图片的索引保持一致,所以就需要使index=spans.index($(this));来获取出当前圆点的索引值。

0
hq_触掱钶忣倖福_0
h $(this)中的this是指spans?
h019-01-31
共1条回复

山河远阔ZZ

2019-01-30

同学你好,代码中有以下几个问题:

1、通过父元素去查找里面的子元素,类名需要用空格隔开,参考下图:

http://img.mukewang.com/climg/5c5176d200011e5c12350273.jpg

http://img.mukewang.com/climg/5c5178b00001349004870037.jpg

2、所有的小圆点被包含在用一个父元素里面,当图片轮播的时候,例如轮播到第一张图,第一个按钮就改变颜色,其他不变,直接通过siblings()就可以了,参考下图:

http://img.mukewang.com/climg/5c5177440001aabb12870295.jpg

3、jq中的click点击事件是:

元素.click(fucntion(){

})

所以代码中的点击修改如下:

http://img.mukewang.com/climg/5c5177ef00010aad13510527.jpg

4、通过类名获取元素,需要加".",参考下图:

http://img.mukewang.com/climg/5c5178620001852d03420064.jpg

5、点击小圆点,改变图片,相对应的按钮也要改变颜色,参考下图:

http://img.mukewang.com/climg/5c517815000179e112970194.jpg

可以自己测试一下,如果帮助到了你,欢迎采纳。

祝学习愉快!

0
hq_触掱钶忣倖福_0
h index=spans.index($(this));可不可以文字解释一下
h019-01-31
共1条回复

0 学习 · 36712 问题

查看课程