见下图:
在后台查看那些透明圆圈?我想要做的是让它们从下往上动画,然后手动跳下(屏幕外)并重新开始动画.圆圈很简单< span>具有border-radius的元素可以产生圆形效果.
这可能与CSS3有关,还是我需要javascript?如果可能的话,我也希望在向上移动的同时在X范围内随机移动圆圈.我会想象随机性需要javascript吗?
如果可能的话,我会很感激有关如何制作它的一些建议/想法.如果不能用CSS,Javascript库也是受欢迎的!
解决方法
这是一个纯粹的CSS
demonstration(改编自
tutorial),它依赖于动画属性.更新:感谢TonioElGringo,现在气泡也会向侧面移动,虽然运动是有节奏的,而不是随机的:
html,body,#bubbles { height: 100% } body { overflow: hidden } #bubbles { padding: 100px 0 } .bubble { width: 60px; height: 60px; background: #ffb200; border-radius: 200px; -moz-border-radius: 200px; -webkit-border-radius: 200px; position: absolute; } .x1 { -webkit-transform: scale(0.9); -moz-transform: scale(0.9); transform: scale(0.9); opacity: 0.2; -webkit-animation: moveclouds 15s linear infinite,sideWays 4s ease-in-out infinite alternate; -moz-animation: moveclouds 15s linear infinite,sideWays 4s ease-in-out infinite alternate; -o-animation: moveclouds 15s linear infinite,sideWays 4s ease-in-out infinite alternate; } .x2 { left: 200px; -webkit-transform: scale(0.6); -moz-transform: scale(0.6); transform: scale(0.6); opacity: 0.5; -webkit-animation: moveclouds 25s linear infinite,sideWays 5s ease-in-out infinite alternate; -moz-animation: moveclouds 25s linear infinite,sideWays 5s ease-in-out infinite alternate; -o-animation: moveclouds 25s linear infinite,sideWays 5s ease-in-out infinite alternate; } .x3 { left: 350px; -webkit-transform: scale(0.8); -moz-transform: scale(0.8); transform: scale(0.8); opacity: 0.3; -webkit-animation: moveclouds 20s linear infinite,sideWays 4s ease-in-out infinite alternate; -moz-animation: moveclouds 20s linear infinite,sideWays 4s ease-in-out infinite alternate; -o-animation: moveclouds 20s linear infinite,sideWays 4s ease-in-out infinite alternate; } .x4 { left: 470px; -webkit-transform: scale(0.75); -moz-transform: scale(0.75); transform: scale(0.75); opacity: 0.35; -webkit-animation: moveclouds 18s linear infinite,sideWays 2s ease-in-out infinite alternate; -moz-animation: moveclouds 18s linear infinite,sideWays 2s ease-in-out infinite alternate; -o-animation: moveclouds 18s linear infinite,sideWays 2s ease-in-out infinite alternate; } .x5 { left: 150px; -webkit-transform: scale(0.8); -moz-transform: scale(0.8); transform: scale(0.8); opacity: 0.3; -webkit-animation: moveclouds 7s linear infinite,sideWays 1s ease-in-out infinite alternate; -moz-animation: moveclouds 7s linear infinite,sideWays 1s ease-in-out infinite alternate; -o-animation: moveclouds 7s linear infinite,sideWays 1s ease-in-out infinite alternate; } @-webkit-keyframes moveclouds { 0% { top: 500px; } 100% { top: -500px; } } @-webkit-keyframes sideWays { 0% { margin-left:0px; } 100% { margin-left:50px; } } @-moz-keyframes moveclouds { 0% { top: 500px; } 100% { top: -500px; } } @-moz-keyframes sideWays { 0% { margin-left:0px; } 100% { margin-left:50px; } } @-o-keyframes moveclouds { 0% { top: 500px; } 100% { top: -500px; } } @-o-keyframes sideWays { 0% { margin-left:0px; } 100% { margin-left:50px; } }