2014-12-09 2 views
1

Я хочу переместить div, а затем вертикально, используя анимацию css, как показано на следующем рисунке. Черные линии стрелки указывают, как я хочу перемещать зеленую коробку. Но коробка после перемещения по горизонтали движется по диагонали, как показано синей стрелкой, вместо того, чтобы вертикально показывать вертикальную стрелку вниз.Как перемещать div горизонтально, а затем вертикально, используя анимацию css?

enter image description here

.mybox { 
    width: 100px; 
    height: 100px; 
    background-color: lawngreen; 
} 

.myanimation{ 
    -webkit-animation: simple 3s forwards ease; 
} 

@-webkit-keyframes simple { 
    50% { 
    -webkit-transform: translateX(300px); 
    -moz-transform: translateX(300px); 
    -ms-transform: translateX(300px); 
    -o-transform: translateX(300px); 
    transform: translateX(300px); 
    } 
    100% { 
    -webkit-transform: translateY(300px); 
    -moz-transform: translateY(300px); 
    -ms-transform: translateY(300px); 
    -o-transform: translateY(300px); 
    transform: translateY(300px); 
    } 
} 

Here is the plunker link

ответ

2

Its, потому что вы гавань указан 100% конечная точка для x преобразования, так что возвращаясь после устанавливается на 50%

(function(){ 
 
    var myBox = $(".mybox"); 
 
    $("#movebtn").on("click",function(){ 
 
     myBox.addClass("myanimation"); 
 
    }) 
 
})();
.mybox { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: lawngreen; 
 
} 
 

 
.myanimation{ 
 
    -webkit-animation: simple 3s forwards ease; 
 
} 
 

 
@-webkit-keyframes simple { 
 
    50% { 
 
    -webkit-transform: translateX(300px); 
 
    -moz-transform: translateX(300px); 
 
    -ms-transform: translateX(300px); 
 
    -o-transform: translateX(300px); 
 
    transform: translateX(300px); 
 
    } 
 
    100% { 
 
    -webkit-transform: translateX(300px) translateY(300px); 
 
    -moz-transform: translateX(300px) translateY(300px); 
 
    -ms-transform: translateX(300px) translateY(300px); 
 
    -o-transform: translateX(300px) translateY(300px); 
 
    transform: translateX(300px) translateY(300px); 
 
    
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="mybox"></div> 
 
    <br> 
 
    <button id="movebtn">Move</button> 
 
    <script data-require="[email protected]" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="script.js"></script>

+2

Вы можете безопасно удалить префиксы '-moz-' и '-o-' для ['transform'] (http://caniuse.com/#search=transforms) и добавить' animation: simple 3s forwards ease' для не префиксные браузеры. –

+0

Это немного запутанно для меня. Если бы я попросил вас переместить ящик в квадратной форме >>> горизонтальный 300px вправо, затем вертикально вниз, затем горизонтально влево, затем вертикально вверх, тогда как это лучший способ сделать это. – manas