imgs[j].style.left 中值的问题,按循环来算,imgs[1].style.left=exposeWidth,并不是图片的宽度啊
主程序部分,还是用老师的, 大家可以参考
for (var i = 0, len = imgs.length; i < len; i++) {
//使用立即调用的函数表答式,为了获得不同的i值
(function(i) {
imgs[i].onmouseover = function() {
//先将每道门复位
setImgsPos();
//打开门
for (var j = 1; j <= i; j++) {
imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px';
}
};
})(i);
当i=0的时候, 也就是鼠标放到第一张图片上,
imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px';
这里的imgs[1].style.left在setImgsPos();中计算的应该是 imgs[1].style.left=imgWidth;
然后执行parseInt(imgs[j].style.left, 10) - translate + 'px';
前面已经定了 translate = imgWidth - exposeWidth;
所以应该是:
imgs[1].style.left=imgWidth-(imgWidth-exposeWidth)
这样的话, imgs[1].style.left=exposeWidth
这样的话 ,就应该不是这个效果, 因为 imgs[1].style.left=imgWidth;才是正确的啊?
我的理解哪里有问题?