为什么没有图片铺开的效果

来源:1-3 实例JS+DOM

慕瓜4948133

2016-03-11 11:47

视频JS+DOM中02:38的那时候的效果不能实现,总是四张图片堆叠在一起。为什么 啊?我的代码和老师的是一样的。

写回答 关注

3回答

  • 慕瓜4948133
    2016-03-16 09:37:23

    开始的前两行,我就没有效果。第一行有效果,从第二行开始就没有了

  • 慕瓜4948133
    2016-03-11 14:26:39

    window.onload=function(){

    //获得容器对象

    var box=document.getElementById('container');

    //获得图片NodeList对象集合

    var imgs=box.getElementsByTagName('img');

    //单张图片的宽度

    var imgWidth=imgs[0].offsetWidth;

    //设置掩藏门体露出的宽度

    var exposeWidth=160;

    //设置容器的总宽度

    var boxWidth=imhWidth+(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){

    img[i].onmouseover=function(){

    //先将每道门复位

    setImgsPos();

    //打开门

    for(var j=1;j<=i;j++)

    {

    imgs[j].style.left=parseInt(imgs[j].style.left,10)-translate+'px'; 

    }

     

    };

     

    })(i);

    }

    };//加载完窗口所有内容之后执行function;

    这是我的JS文件

    拉格朗日之都

    为每道门绑定事件时,应该是imgs[i],而不是img[i]

    2016-03-13 15:45:54

    共 3 条回复 >

  • zoyin
    2016-03-11 12:01:13

    只发图片别人不清楚的

    拉格朗日之都

    11行imgWidth拼写错误

    2016-03-13 15:38:55

    共 1 条回复 >

DOM探索之基础详解篇

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

98374 学习 · 238 问题

查看课程

相似问题