怎么完全用CSS3使一个的元素做流畅的弧线运动?

html-css030

怎么完全用CSS3使一个的元素做流畅的弧线运动?,第1张

可以做一个animation,举一个例子,让一个元素在某一个范围之内,左距离和上距离同时改变。但是,弧线要让两个距离改变速度变化不一致,所以最好一个元素改变上方距离(可以是top也可是margin-top),里面嵌入一个元素改变左边距离。例如,假如你要让横轴均匀变化,纵轴不均匀变化,轨迹为⌒形,可以左变化为{from{margin-left:0px}to{margin-left:200px}},运动方式设为linear,然后上下变化可以{from{margin-top:100px}50%{margin-top:0px}to{margin-top:100px}},运动方式设为ease-in-out。由于时间仓促我没有具体实验过,而且表达可能不太清楚,请原谅。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style>

.test{

position: absolute

left: 50px

top: 200px

width: 50px

height: 50px

border-radius: 50%

background: red

-webkit-animation: move 2s linear

-moz-animation: move 2s linear

-ms-animation: move 2s linear

-o-animation: move 2s linear

animation: move 2s linear

}

@keyframes move{

0%{

left : 50px

top: 200px

}

50%{

left: 150px

top: 100px

}

100%{

left: 250px

top: 200px

}

}

</style>

</head>

<body>

<div class="test"></div>

</body>

</html>

简单做了一个,反弹有些生硬。你可以自己调一调参数。修改的更符合力学原理。

这种需求除了自己要做研究或者show一下做个demo外,还是js比较好。

css3的话,给该元素套个外层dom,外层transform:rotate,控制好半径(由外层dom大小控制)、角度、时间就行。