在一个table中有许多td每个td大小限定为256*256,每个td里面放一张256*256的IMG是没有问题的
现在我要想在多张透明图片叠加在上面,如果不使用绝对定位td将会被撑大
如果用绝对定位,它的坐标是相对table的,而不是相对td的,那我必须计算每个img
的top和left值,那样太麻烦。
请教各位有没有更好的办法???????????????

解决方案 »

  1.   

    我试过在td加DIV,不用绝对定位就叠不在一起,使用的话,top,left不能为0px必须计算位置!
      

  2.   

    具体代码如下:
    this.addImage=function(level, lineNo, rowNo,htmlTag)//级数,列号,行号,td对象
    {
         if((rowNo*1<0)||(rowNo*1>=RowImgNo)||(lineNo*1<0)||(lineNo*1>=RowImgNo))
         {
    htmlTag.innerHTML="<IMG id='none'  src='"+o.mapout+"' width='"+o.imgSize+"' height='"+o.imgSize+"'>";

    }
    else if(!window.Img_obj[htmlTag.id])
    {
    var id = rowNo+"&"+lineNo+"&"+parseInt(level+1);
    var levelF = level +1;
    htmlTag.innerHTML="<IMG id='"+id+"'  src='http://192.168.83.172/tu/img"+levelF+"/Row"+rowNo+"/"+rowNo+"_"+lineNo+o.picExt+"' width='"+o.imgSize+"' height='"+o.imgSize+"' onload='sav_RAM(this,\""+htmlTag.id+"\");' >";
    //htmlTag.innerHTML="<IMG id='"+id+"'  src='"+imageUrl+"/img"+levelF+"/Row"+rowNo+"/"+rowNo+"_"+lineNo+window.picExt+"' width='"+window.imgSize+"' height='"+window.imgSize+"' onload='sav_RAM(this,\""+htmlTag.id+"\");' >";
    //tempImg += ""+rowNo+"_"+lineNo+"/";
    }
    else 
    htmlTag.appendChild(window.Img_obj[htmlTag.id]);
    }就是要叠加多张图!
      

  3.   

    我也在找这方面的资料楼上给的代码只是加了一个img  对像,也没有图片叠加的功能吧。
      

  4.   

    取td的定位, 然后再定位图片的位置, 必须绝对定位
    给你一个函数,根据对象取得该对象的位置:
    //如果你要使用,则参数obj为你的td对象
    function YJgetPosition(obj){
        var ar=new Array();
        var t=obj.offsetTop;
        var l=obj.offsetLeft;
        while(obj.offsetParent){
            obj=obj.offsetParent
            t+=obj.offsetTop;
            l+=obj.offsetLeft;
        }
        ar[0]=l;
        ar[1]=t;
        return ar;
    }然后你再根据取得的td位置定位图片位置