【发布时间】:2019-01-18 22:06:37
【问题描述】:
我正在尝试在单击框时执行animation,预期如下
- 单击框时,它必须向右移动到 300 像素或最右侧,然后它应该移到底部。
注意:如果使用
tweenMax (GSAP)实现。那么解决方案是最受欢迎的。
如图所示:
这里是codepen:https://codepen.io/anon/pen/ajXqLL
$(function(){
$('.box').on('click',function(){
$('#wrapper').append(this);
$(this).addClass('elementToAnimate');
});
});
div.box{
height: 100px;
width: 200px;
background:red;
display: inline-block;
text-align:center;
color:#fff;
font-size:26px;
margin: 0px;
float: left;
}
div.box:active{
background:yellow;
}
div.box2{
background:green;
}
div.box3{
background:orange;
}
@keyframes yourAnimation{
0%{
transform: translateX(100px) translateY(20%);
}
40%{
transform: rotate(xx) translateX(120px) translateY(40%);
}
60%{
transform: rotate(xx) translateX(150px) translateY(50%);
}
80%{
transform: rotate(xx) translateX(200px) translateY(90%);
}
}
.elementToAnimate{
animation: yourAnimation 3s forwards 0s linear;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<!-- for box 2 -->
<div class="box box2">7</div>
<div class="box box2">8</div>
<div class="box box2">9</div>
<div class="box box2">10</div>
<div class="box box2">11</div>
<div class="box box2">12</div>
<!-- for box 3-->
<div class="box box3">13</div>
<div class="box box3">14</div>
<div class="box box3">15</div>
<div class="box box3">16</div>
<div class="box box3">17</div>
<div class="box box3">18</div>
</div>
请帮助我提前谢谢!
【问题讨论】:
-
OP 我没有完全理解这个问题。您是否希望元素在单击时在该网格中向右移动?如果他们在最后一行,您是否希望他们降档?请阐明您的目标,以便我们更好地了解您需要完成的工作。
-
@keno Clayton,它应该像下面的答案
@Arash Khajelou一样工作,但没有setTimeout。animation有一些改进
标签: javascript jquery css jquery-animate gsap