【问题标题】:Animating element to move up in html5/javascript canvas动画元素在 html5/javascript 画布中向上移动
【发布时间】:2014-03-17 16:43:37
【问题描述】:

我正在 JavaScript html 画布中制作简单的动画。目前我有一个使元素(图像)无限下降的功能。我想反转它并让它无限向上(从页面底部开始向上移动),但我所有的尝试和实验都失败了。
如有任何想法,我将不胜感激!

这是我拥有的功能,它将元素向下移动:

function moveDown(){
    start += 1;
    var m = document.getElementById('money');
    m.style.top = start + "px";
    m.style.left = "300px";

}
var start = 350;


function rain() {

    var m = document.createElement('img');
    m.id = "money";
    m.src = "images/holof.png";
    m.style.position = "absolute";
    m.style.top = start + "px";
    // m.style.top="0px";
    m.style.left = "300px";
    m.setAttribute("class", "money");
    document.body.appendChild( m );

    setInterval(moveDown, 500);



}

那我如何让它上升呢?

【问题讨论】:

    标签: javascript html animation canvas


    【解决方案1】:

    我不确定这与画布有什么关系,但您只需执行以下操作即可让您的 Image 元素向上移动。

    将起始增量反转为减量

    function moveUp(){
    
        start--;   /// move up 1 pixel
    
        style.top = start + "px";
    }
    
    var start = 350;
    var m = document.getElementById('money'); /// cache this here
    var style = m.style;                      /// cache style
    style.left = "300px";                     /// set once here
    

    缓存将提高性能,因为它减少了 JS 和 DOM 之间的对话。

    但是,作为提示:当元素移出视线时,您需要停止循环,否则您将执行不必要的代码调用,因此需要考虑在其中添加条件以停止循环。

    【讨论】:

    • 谢谢!当我使用下移功能时,页面高度随着图像的下降而增加,所以我仍然可以看到它在移动。当它向上移动时是否可以做同样的事情,所以它不会移到视线之外(但是当我们滚动网站时我们能够跟随它)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多