使用 javascript 的动画 - 如何向上移动对象

Posted

技术标签:

【中文标题】使用 javascript 的动画 - 如何向上移动对象【英文标题】:animation using javascript - how to move an object upwards 【发布时间】:2018-04-07 18:48:36 【问题描述】:

以下是我的代码,容器盒内有一个小盒子,单击按钮时,它会向下动画并撞到容器底部,然后它应该从那里上升。但相反,它开始在同一个地方快速闪烁。请告诉我一旦箱子触到底部如何升起。

    <style>
        #myContainer 
        width: 400px;
        height: 400px;
        position: relative;
        background: yellow;
       
      #myAnimation 
        width: 50px;
       height: 50px;
       position: absolute;
       background: red;
      
 </style>
  <p>
      <button id=button>Click Me</button> 

 </p>

  <div id ="myContainer">
         <div id ="myAnimation">Fish</div>
   </div>

  <script>
   button =document.getElementById("button");
   button.onclick = function() 
var elem = document.getElementById("myAnimation");
var pos = 0;
var id = setInterval(frame, 10);
function frame() 
    /*if (pos == 350) 
        clearInterval(id);
     
    else*/

        if(pos<175)

    
        pos++;
        elem.style.top = 2*pos + 'px';
        elem.style.left = pos + 'px';
    
    else
    
            pos--;
        elem.style.top = pos + 'px';
        elem.style.right = pos + 'px';
             
      
    
   </script>

【问题讨论】:

CSS3 equivalent to jQuery slideUp and slideDown?的可能重复 【参考方案1】:

嗨made 一个小解决方案,你需要一个开关来弥补,直到上去,然后倒车到下。

button =document.getElementById("button");
   button.onclick = function() 
var elem = document.getElementById("myAnimation");
var pos = 0, up=false;
var id = setInterval(frame, 10);

function frame() 
console.log(up, pos);
    /*if (pos == 350) 
        clearInterval(id);
     
    else*/

        if(pos<175 && !up)

    
        pos++;
        if(pos===175) up=true;
        elem.style.top = pos + 'px';
        elem.style.left = pos + 'px';
    
    else
    
            pos--;
            if(pos<=0) up=false;
        elem.style.top = pos + 'px';
        elem.style.left = pos + 'px';
             
      
    

【讨论】:

以上是关于使用 javascript 的动画 - 如何向上移动对象的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 中的插入/移除动画

如何为MKMapKit注释移除设置动画

限制和动画功能

悬停后鼠标移出时反转不透明度动画

悬停时停止 CSS 动画

使用向上/向下滑动动画显示和隐藏视图