Web前端笔记之轮播图和定时器




	
	焦点图和轮播
	
	


	
1 1 2 3 4 5 5
首先讲几个函数的使用
parseint():

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

such as:

parseInt("10");			//返回 10
parseInt("19",10);		//返回 19 (10+9)
parseInt("11",2);		//返回 3 (2+1)
parseInt("17",8);		//返回 15 (8+7)
parseInt("1f",16);		//返回 31 (16+15)
parseInt("010");		//未定:返回 10 或 8



我这里是将list.style.left返回的字符串转为10进制整数

其次是讲讲思路,轮播图的实现实际上就是将元素浮动排列比如每张图height400pxwidth600px7张图就是4200pxwidth400px,实际上使用一个图片的父级div设置overflow来实现每次只实现一张图片,其他图片只是顺序的排列在后面,然后通过设置两个a标签相对定位到父级元素两侧(一般采取的布局是先父类绝对定位,然后子类元素相对父类元素 相对定位),通过设置a标签的onclick事件来使list.style.left的值发生改变来使用户看到不同的图片内容,比如刚开始是-600px,对应的是第一张图,点了右边的next的a标签后list.style.right的值变为了-1200px;这时看到的就是第二张图了,不过这么切换有个弊端那就是很突兀,所以我们设置了一个speed偏移量,再者我们要通过图片下面的5个圆点来控制图片,此时引入了index索引,写个for循环批量给5个圆点设置onclick事件,在点击的时候获取当前元素的index值通过减去全局变量的index(圆点按下时的页面的index)的值来获得偏移量并改变所有圆点class为空再给要切换的圆点增加on的class值来设置原点的选中样式,进而通过定时器里递归调用来实现无限循环播放,第一张图片(5.jpg)和最后一张图片(1.jpg)的作用是为了实现无限滚动的效果,因为此效果是通过设置id为list的div容器的left值来实现图片切换的,所以当轮播到第五张图片(5.jpg)的时候,再进行向右切换的时候,这时最后一张图片被切换进来,此时left值已经为-3600px,并且同时我们又将其left值改为-600px,这样就回到了真正的第一张图。由于最后一张图片就是第一张图片(1.jpg),所以用户肉眼看上去没有什么变化,就这样实现了无限滚动的效果,其他同理!那么如果没有那两张图片作为过渡的话,效果就会是这样,当轮播到最后一张的时候会闪一下就没有了。

你可能感兴趣的:(Web前端笔记之轮播图和定时器)