• moveElement函数与positionMessage函数


    function moveElement(elementID,final_x,final_y,interval){
        if (!document.getElementById) return false;
        if (!document.getElementById(elementID)) return false;
        var elem=document.getElementById(elementID);
        var xpos=parseInt(elem.style.left);
        var ypos=parseInt(elem.style.top);
        if (xpos==final_x&&ypos==final_y) {
        return true;
    }
        if (xpos<final_x) {xpos++;}
        if (xpos>final_x) {xpos--;}
        if (ypos<final_y) {ypos++;}
        if (ypos>final_y) {ypos--;}
        elem.style.left=xpos+"px";
        elem.style.top=ypos+"px";
        var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
        movement=setTimeout(repeat,interval);
        
    }
     
     addLoadEvent(moveMessage);

    moveElement函数,用于使带有id元素属性的文档移动,只要给出元素id,最终x坐标,最终y坐标,时间间隔。就可以调用此函数。

    function positionMessage(){
        if (!document.getElementById) return false;
        if (!document.getElementById("message")) return false;
            var elem=document.getElementById("message");
            elem.style.position="absolute";
            elem.style.left="50px";
            elem.style.top="100px";
            moveElement("message",200,100,10);
        }
    addLoadEvent(positionMessage);
    positionMessage函数,设置带有id元素属性文档位置函数,搭配moveElement函数可以达到动画效果。
    function moveElement(elementID,final_x,final_y,interval){
        if (!document.getElementById) return false;
        if (!document.getElementById(elementID)) return false;
        var elem=document.getElementById(elementID);
        if (elem.movement) {
            clearTimeout(elem.movement);
        }
        var xpos=parseInt(elem.style.left);
        var ypos=parseInt(elem.style.top);
        var dist=0;
        if (xpos==final_x&&ypos==final_y) {
        return true;
    }
        if (xpos<final_x) {
            dist=Math.ceil((final_x-xpos)/10);
            xpos=xpos+dist;
        }
        if (xpos>final_x) {
            dist=Math.ceil((xpos-final_x)/10);
            xpos=xpos-dist;
        }
        if (ypos<final_y) {
            dist=Math.ceil((final_y-ypos)/10);
            ypos=ypos+dist;
        }
        if (ypos>final_y) {
            dist=Math.ceil((ypos-final_y)/10);
            ypos=ypos-dist;
        }
        elem.style.left=xpos+"px";
        elem.style.top=ypos+"px";
        var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
        elem.movement=setTimeout(repeat,interval);
        
    }
     
     addLoadEvent(moveMessage);

    这是改进版,移动速度随着初始与目标距离的增加逐渐加快。

     
  • 相关阅读:
    python_3 装饰器之初次见面
    python_迭代器
    Python_1生成器(下)之单线并行--生产着消费者模型
    Python_ 1生成器(上)初识生成器
    memcache 和 redis 的区别
    Linux 面试总结
    网络面试总结
    操作系统相关面试总结
    剑指offer 数组中的重复数字
    svn-主副分支使用
  • 原文地址:https://www.cnblogs.com/CClarence/p/4913306.html
Copyright © 2020-2023  润新知