这里,我们要让Frame标签的rotate属性产生动画效果。我们利用Frame标签的animate属性来设置一个新的rotate的值。同时,我们可以利用transition这个属性来自定义变化的一些设置,比如说我们可以定义一个变化的时长为5s。
import * as React from "react"
import { Frame } from "framer"
export function MyComponent() {
return (
<Frame
animate={{ rotate: 360 }}
transition={{ duration: 1 }}
/>
)
}
transition属性包含很多可以设置的属性用来让我们自定义想要的一些变化效果。在这个案例中,我们定义了一个无限循环的变化效果,我们把loop属性的值设置为Infinity,把ease属性的值设置linear,用以实现这个效果。这种动画效果比较适合用来做进度提示,尤其是作为加载旋转提示。
import * as React from "react"
import { Frame } from "framer"
export function MyComponent() {
return (
<Frame
animate={{ rotate: 360 }}
transition={{
duration: 2,
loop: Infinity,
ease: "linear",
}}
/>
)
}
import * as React from "react"
import { Frame, useCycle } from "framer"
export function MyComponent() {
const [animate, cycle] = useCycle(
{ scale: 1.5, rotate: 0 },
{ scale: 1.0, rotate: 90 }
)
return <Frame animate={animate} onTap={() => cycle()} />
}
Frame标签的背景颜色也能通过background属性来产生变化。在下面这个例子中,我们让Frame标签的颜色从在1秒的时间内从淡蓝色变化为紫色,然后再从紫色变回蓝色,一直循环不停。这是使用了yoy'o这个属性,让背景色的变化可以反向变化,同时yoyo的值设置成了Infinity,就是无限循环。
import * as React from "react"
import { Frame } from "framer"
export function MyComponent() {
return (
<Frame
animate={{ background: "#85F" }}
transition={{
duration: 1,
yoyo: Infinity,
}}
background={"#0CF"}
/>
)
}
除了使用一个单一的值,你也可以把好几个值放到数组里面然后放在animate属性里面。在这个案例中,我们让Frame标签的颜色在2秒之内从几个颜色之间不停地来回切换。
import * as React from "react"
import { Frame } from "framer"
export function MyComponent() {
return (
<Frame
animate={{ background: ["#F05", "#85F", "#0CF"] }}
transition={{
duration: 2,
yoyo: Infinity,
}}
background={"#0CF"}
/>
)
}