var centerx = 400; //圆心X 
var centery = 400; //圆心Y
var r =360; //半径var oimages = document.getElementById("div1").getElementsByTagName("div");  //图片集合var cnt = oimages.length; //图片数var da = 360 / (cnt - 1); //图片间隔角度var a0 = 0; //已旋转角度var timer;oimages[0].style.left = centerx + "px";oimages[0].style.top = centery + "px";for (var i = 1; i < cnt; i++) {oimages[i].onmouseover = stop;oimages[i].onmouseout = start;}function posimgs() {for (var i = 1; i < cnt; i++) {oimages[i].style.left = centerx + r * Math.cos((da * i + a0) / 180 * Math.PI) + "px";oimages[i].style.top = centery + r * Math.sin((da * i + a0) / 180 * Math.PI) + "px";}}
function start() {
        timer = window.setInterval("posimgs();a0++;", 100);
    }上面代码实现若干图片围绕中心点旋转,中心点也可以放图片,但我中心点要放的图片有点大,
造成旋转时半径大小不一,左边空的多,右边空的少甚至重叠,怎么解决?

解决方案 »

  1.   

    http://hi.baidu.com/%B3%A4%C9%C0%E8%FE%D7%D3%C5%A9/album/item/00073ac7fd1f413474ffaada251f95cad0c85e7c.html#
      

  2.   

    这样,定位的时候以内容中心点为基坐标就可以了,
         images[0].style.left = centerx - images[0].offsetWidth / 2 + "px";
         oimages[0].style.top = centery - images[0].offsetHeight / 2 + "px";       function posimgs() {         for (var i = 1; i < cnt; i++) {             oimages[i].style.left = centerx - images[i].offsetWidth / 2 + r * Math.cos((da * i + a0) / 180 * Math.PI) + "px";             oimages[i].style.top = centery - images[i].offsetHeight / 2 + r * Math.sin((da * i + a0) / 180 * Math.PI) + "px";         } 
         }
      

  3.   

    oimages[0].style.left = centerx - images[0].offsetWidth / 2 + "px";
    oimages[0].style.top = centery - images[0].offsetHeight / 2 + "px";centerx - images[0].offsetWidth / 2中心点的坐标除以2得不到效果,除以images[0].offsetWidth / 5或6才得到正中的位置