代码和老师一样 为什么宽度不居中 和 第四张图没有动画效果呢?

来源:1-3 实例JS+DOM

加咖啡喵

2017-09-26 11:26

//容器对象
var box = document.getElementById('container');

//获得图片NodeList对象集合
var imgs = box.getElementsByTagName('img');

//单张图片的宽度
var imgWidth = imgs[0].offsetWidth;

//设置掩藏门体露出的宽度
var exposeWidth = 160;

//设置容器总宽度
var boxWidth = imgWidth + (imgs.length - 1) * exposeWidth;
box.style.width = boxWidth + 'px';

//设置每道门的初始位置
function setImgsPos() {
   for (var i = 1, len = imgs.length; i < len; i++) {
      imgs[i].style.left = imgWidth + exposeWidth * (i - 1) + 'px';
   }
}
setImgsPos();

//计算每道门打开时应移动的距离
var translate = imgWidth - 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);
}


写回答 关注

2回答

  • 慕后端5826710
    2017-09-27 15:18:38

    加上window.onload试试

  • 作孽的赌徒_
    2017-09-27 15:11:29

    http://img2.mukewang.com/59cb4e7b0001fff410320730.jpg

    我的是出现了这种情况,因为我把js文件的位置放错了,我复制了你的代码然后放到正确的JS文件夹下面,并且正确引用之后就没有再出现这种问题了。

DOM探索之基础详解篇

要知道前端大牛都是从精通DOM开始的,全面讲解DOM的基础知识

98372 学习 · 238 问题

查看课程

相似问题