为了账号安全,请及时绑定邮箱和手机立即绑定

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;才是正确的啊?

我的理解哪里有问题?

正在回答

1 回答

我把老师程序中的imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px'; 改为

imgs[j].style.left = exposeWidth+ 'px';

居然在图1和图2上onmouseover效果也是正常的, 怎么会这样?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

imgs[j].style.left 中值的问题,按循环来算,imgs[1].style.left=exposeWidth,并不是图片的宽度啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信