imgs[j].style.left 中值的問題,按循環(huán)來算,imgs[1].style.left=exposeWidth,并不是圖片的寬度啊
主程序部分,還是用老師的, 大家可以參考
for (var i = 0, len = imgs.length; i < len; i++) {
//使用立即調(diào)用的函數(shù)表答式,為了獲得不同的i值
(function(i) {
imgs[i].onmouseover = function() {
//先將每道門復(fù)位
setImgsPos();
//打開門
for (var j = 1; j <= i; j++) {
imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px';
}
};
})(i);
當(dāng)i=0的時(shí)候, 也就是鼠標(biāo)放到第一張圖片上,
imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px';
這里的imgs[1].style.left在setImgsPos();中計(jì)算的應(yīng)該是?imgs[1].style.left=imgWidth;
然后執(zhí)行parseInt(imgs[j].style.left, 10) - translate + 'px';
前面已經(jīng)定了 translate = imgWidth - exposeWidth;
所以應(yīng)該是:
imgs[1].style.left=imgWidth-(imgWidth-exposeWidth)
這樣的話, imgs[1].style.left=exposeWidth
這樣的話 ,就應(yīng)該不是這個(gè)效果, 因?yàn)?imgs[1].style.left=imgWidth;才是正確的???
我的理解哪里有問題?
2016-11-30
我把老師程序中的imgs[j].style.left = parseInt(imgs[j].style.left, 10) - translate + 'px'; 改為
imgs[j].style.left = exposeWidth+ 'px';
居然在圖1和圖2上onmouseover效果也是正常的, 怎么會(huì)這樣?