1-13问题

来源:1-13 作业题

慕丝6937110

2019-01-09 01:06:26

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

1:点击左右按钮时发生了什么错误吗,看页面效果我好像并没有发现有什么不对的地方,什么叫默认跳转行为,不理解

2:

var numberOfPics=$('.pic').length;
		//console.log(numberOfPics);
		var index=0;
		var picAuto;

		//封装一个函数,用于切换图片
		function mySlider(){
			index++;
				if(index>=numberOfPics){
					index=0;
				}
				$('.pic').eq(index).addClass('active');
				$('.pic').eq(index).siblings().removeClass('active');
				$('span').eq(index).addClass('dots-active');
				$('span').eq(index).siblings().removeClass('dots-active');
		}

		//鼠标滑过后,开始自动轮播
		$('.main').mouseout(function(){
			picAuto=setInterval(function(){
				mySlider();	
			},2000)
		})
		//调用onmouseout这个方法,使得自动执行onmouseout事件,使页面刚加载出来就自动轮播
		$('.main').mouseout();

		//当鼠标放在图片或"上下按钮"以及圆点上面时,清除定时器,使自动轮播停止
		$('.main').mouseover(function(){
			clearInterval(picAuto);
		})
		

		//点击往下翻的按键
		$('.next').click(function(){
			mySlider();

		})
		//点击往上翻的按钮,因为index为递减,所以这边单独写一个函数,不调用slider
		$('.previous').click(function(){
			index--;
				if(index<0){
					index=4;
				}
				$('.pic').eq(index).addClass('active');
				$('.pic').eq(index).siblings().removeClass('active');
				$('span').eq(index).addClass('dots-active');
				$('span').eq(index).siblings().removeClass('dots-active');
		})

		//点击圆点切换图片
		$('span').click(function(event){
			//获取每个圆点的索引值
			var dotIndex=$(event.target).index();
			//用圆点的索引值来控制要选择的图片
			$('.pic').eq(dotIndex).addClass('active');
			$('.pic').eq(dotIndex).siblings().removeClass('active')
			$('span').eq(dotIndex).addClass('dots-active');
			$('span').eq(dotIndex).siblings().removeClass('dots-active');
		})

把var dotIndex=$(event.target).index();这里的变量名从dotIndex改为index有什么区别吗???我在一开始就定义过一个叫index的变量了,用他来控制轮播的。我确实发现了点击圆点时的跳转错误,但这个错误原理是什么呢,为什么会出现这样的错误,不懂啊

写回答

1回答

好帮手慕夭夭

2019-01-09

你好同学 , 问题解答如下 :

  1. 作业中左右按钮逻辑并没有错误 , 批复老师是给同学一个建议 . 因为a标签有默认的跳转行为 . 跳转行为同学可以按照如下代码 ,自己试一试就能够理解了 :

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

    当点击a标签时 , 页面会跳转到顶部 ,这就是一个跳转行为 . 这是a标签默认的一个特点 . 因为你的作业本身就显示在最顶部了 ,所以点击的时候跳转的效果看的并不是很明显  . 但是建议同学参考批复文档 , 设置一个阻止默认行为更好 .

  2. 因为你在点击事件中把点击的当前索引赋值给一个新的变量dotIndex ,此时index还是原来的index .

    例如页面打开时 ,自动进行轮播 ,调用mySlider . 图片自动轮播到第二张图片 , 此时index值为1 . 这个时候点击第一个圆点 , i索引应该变为0  ,但是此时事件中把索引0赋值给了dotIndex  ,index还是之前的1.  所以鼠标移出后 , 图片又开始自动轮播,调用mySlider . 仍然会按照index=1的索引顺序去执行轮播 . 

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

    所以你应该让整个代码逻辑中的index同步 , 不管是点击圆点还是点击按钮或者自动轮播 ,它的索引都为index  

祝学习愉快 ,望采纳 .

0

0 学习 · 36712 问题

查看课程