点击后在body之类的元素注册移动事件

解决方案 »

  1.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title></title>
    <script language="javascript">
    var ie = navigator.appName == "Microsoft Internet Explorer";
    var count = 24;
    var r = 80; //圆半径
    var speed = 8; //速度var arc = 0;
    var newLeft = oldLeft = 0;
    var newTop = oldTop = 0;
    var divs = [];function init()
    {
    for(var i=1;i<=count;i++)
    {
    var div = document.createElement("DIV");
    with(div.style)
    {
    width = 2;
    height = 2;
    backgroundColor = "#FF0000";
    position = "absolute";
    zIndex = i + 10;
    }
    div.id = "div" + i;
    div.innerHTML = "<img src='' width=1 height=1 style=filter:alpha(opacity=0)/>";
    document.body.appendChild(div);
    divs.push(div);
    } arc = 360 / divs.length;
    delay();
    }function changePos(point)
    {
    for(var i=1;i<=divs.length;i++)
    {
    var x = r * Math.cos(arc * i * Math.PI/180);
    var y = r * Math.sin(arc * i * Math.PI/180);
    divs[i-1].style.left = point.x + x;
    divs[i-1].style.top = point.y + y;
    arc += speed / 1000;
    if(arc > 360 * 2)arc = 360;
    }
    }function getPos()
    {
    return {x:newLeft,y:newTop};
    }document.onmousemove = function(e)
    {
    var ev = ie ? window.event : e;
    oldLeft = ie ? ev.x : ev.pageX;
    oldTop = ie ? ev.y : ev.pageY;
    }function delay()
    {
    newTop += (oldTop - newTop) / 20;
    newLeft += (oldLeft - newLeft) / 20;
    changePos(getPos());
    setTimeout("delay();",10);
    }
    </script>
    </head><body onLoad="init();">
    </body>
    </html>存成HTML看效果, 用这种原理吧.