//点击圆点切换图片 for(var i = 0; i < btn.length; i++){ btn[i].onclick = function(){ //获取当前点击的index值 var myIndex = parseInt(this.getAttribute('index')); var offset = -600 * (myIndex - index); animate(offset); index = myIndex; showButton(); } }
在计算点击圆点的偏移量这里,很不了解是怎么计算的。
var myIndex = parseInt(this.getAttribute('index'));
//这一段是或缺点击的圆点当前index的值
var offset = -600 * (myIndex - index);
//这一段就不懂了,一开始定义了 index=1,如果我点击第二个圆点,那么myIndex=2,算出来就是 offset = -600 * (2-1) ,, offset = -600;;这样的话,不就是跳到第一张图,但是运行了就没问题,是我哪里理解错了,求大神帮忙解释一下。。
offset是传到animate里面的参数,不是最终left的值。将现在offset=-600传到animate之后,animate这个函数还要在加-600,最终变成-1200,也就是第二张图
var myIndex = parseInt(this.getAttribute('index'));
这里的index和上面的var index=1;不是同一个index;
this.getAttribute('index')是取到当前节点的index这个自定义属性的值
结合animate函数看一下,还有你在animate(offset)这个代码处加个断点,调试。看看最终的left是怎么变的。调试一遍应该就会了