2016-03-02 67 views
1

我想在两个元素之间创建一个动态宽度的动画(取决于屏幕大小)。CSS3动画 - 两个元素之间的弧

有人可以给我一个提示如何实现?见附图。

Animate between 2 elements with unknown distance

+0

尝试google..you会得到一切。 –

+0

相信我我试过 - 没有得到这个具体问题的答案。如果您有很好的链接,欢迎与我分享。 –

+0

您可以添加您通过jsfiddle或plunker尝试过的代码吗? – johannesMatevosyan

回答

3

如果你能得到一个div来扩展你想覆盖的距离,该解决方案可以工作:

设置2级的动画,一个是水平轴,另一个为纵坐标

.container { 
 
    width: 400px; 
 
    height: 100px; 
 
    border: solid 1px blue; 
 
    position: relative; 
 
} 
 

 
.container:nth-child(2) { 
 
    width: 800px; 
 
} 
 

 
.inner { 
 
    width: 25px; 
 
    height: 25px; 
 
    background-color: green; 
 
    border-radius: 100%; 
 
    animation-name: arctop, arcleft; 
 
    animation-duration: 2s, 2s; 
 
    animation-timing-function: linear, linear; 
 
    animation-iteration-count: infinite, infinite; 
 
    position: absolute; 
 
} 
 

 
@keyframes arctop { 
 
    0% {top: 75px; animation-timing-function: ease-out;} 
 
    50% {top: 0px; animation-timing-function: ease-in;} 
 
    100% {top: 75px;} 
 
} 
 

 
@keyframes arcleft { 
 
    0% {left: 0px;} 
 
    100% {left: calc(100% - 25px)} 
 
}
<div class="container"> 
 
    <div class="inner"></div> 
 
</div> 
 
<div class="container"> 
 
    <div class="inner"></div> 
 
</div>

+0

谢谢,我永远不知道我可以在元素上使用多个动画。非常感谢您的回答! @vals –

+0

幸福,它帮助!但是浏览器对多动画的支持并不是很好,所以你可能想要创建一个中间元素,并为每一个动画赋一个动画。 – vals