zoukankan      html  css  js  c++  java
  • 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);

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

     
  • 相关阅读:
    Django基础
    PostMan打不开怎么解决
    Beyond Compare 4.x(含4.3.3)专业版独家破解(附激活密钥以及注册机,全网独家可用)
    详细安装教程(视频版)
    经典排序算法及总结(python实现)
    Django开发常用方法及面试题
    C:UsersKellyAppDataRoaming pm-cache\_logs2019-03-24T08_17_24_284Z-debug.log
    vue项目搭建和开发流程 vue项目配置ElementUI、jQuery和Bootstrap环境、跨域问题
    970.强整数
    9_11 bootstarp使用
  • 原文地址:https://www.cnblogs.com/CClarence/p/4913306.html
Copyright © 2011-2022 走看看