JS动画
您可以使用Quasar通过Javascript(使用RAF - requestAnimationFrame()
)创建动画。
import { animate } from 'quasar' |
例子:import { animate } from 'quasar'
animate.start({
from: 6,
to: 158,
apply (pos) {
el.style.maxHeight = `${pos}px`
},
done () {
console.log(`we're done!`)
}
})
缓动(Easing)函数
缓动函数取当前动画百分比进度(0和1之间的浮点数)并返回位置乘数(0表示初始位置,1表示最终位置)。
包括以下缓动函数:
ease[In|Out|InOut][Quad|Cubic|Quart|Quint|Circ]
- 例如,
easeInCubic
、Quad
以及Quint
效果逐渐变得更夸张。Circ
略有不同(图形是四分之一圈),它在最后加速更快。
- 例如,
overshoot
- 拍摄超过最终位置并缓慢返回
standard
- 用于屏幕上的移动。加速很快,减速缓慢
decelerate
- 用于进入屏幕的元素。飞入并缓慢减速(
easeOutCubic
)。
- 用于进入屏幕的元素。飞入并缓慢减速(
accelerate
- 用于离开屏幕的元素。加速然后全速离开(
easeInCubic
)。
- 用于离开屏幕的元素。加速然后全速离开(
sharp
- 用于离开屏幕可能返回的的元素(例如导航栏)。加速和减速(
easeInOutQuad
)
- 用于离开屏幕可能返回的的元素(例如导航栏)。加速和减速(
例如:import { animate, easing } from 'quasar'
animate.start({
from: 0,
to: 100,
easing: easing.standard
...
})
或者用转盘:<template>
<q-carousel :swipe-easing="overshoot">
Slides...
</q-carousel>
</template>
<script>
import { easing, QCarousel } from 'quasar'
export default {
components: {
QCarousel
},
data: () => ({
overshoot: easing.overshoot
})
}
</script>