老师,没有实现任何效果
来源: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标签。
山河远阔ZZ
2019-01-31
同学你好,在效果中,需要点击小圆点,就出现相对应的图片,例如:点击第二个按钮,第二张图片就要显示,那么就是圆点的索引就要跟图片的索引保持一致,所以就需要使index=spans.index($(this));来获取出当前圆点的索引值。
山河远阔ZZ
2019-01-30
同学你好,代码中有以下几个问题:
1、通过父元素去查找里面的子元素,类名需要用空格隔开,参考下图:


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

3、jq中的click点击事件是:
元素.click(fucntion(){
})
所以代码中的点击修改如下:

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

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

可以自己测试一下,如果帮助到了你,欢迎采纳。
祝学习愉快!
相似问题