01 使用 motionValue 和 useTransorm 传递参数

2020-02-07 21.34.19.gif

  1. import * as React from "react"
  2. import { motionValue, useTransform, Override } from "framer"
  3. const position = motionValue(0)
  4. // 拖动把手
  5. export function Knob(): Override {
  6. return {
  7. x: position,
  8. drag: "x",
  9. dragConstraints: {
  10. left: 0,
  11. right: 130,
  12. },
  13. dragElastic: 0,
  14. dragMomentum: false,
  15. }
  16. }
  17. // 填充区
  18. export function Fill(): Override {
  19. return {
  20. width: position,
  21. }
  22. }
  23. // 拖动范围在 0-130 之间时,缩放在 1-1.5
  24. export function DragScale(): Override {
  25. const scale = useTransform(position, [0, 130], [1, 1.5])
  26. return {
  27. scale: scale,
  28. }
  29. }

02 数字跟随滑块改变

2020-06-06 10.18.48.gif

  1. import * as React from "react"
  2. import { Override, Data } from "framer"
  3. const appState = Data({
  4. number: "50",
  5. })
  6. //滑块移动时取其值
  7. export function Slider(): Override {
  8. return {
  9. onChange: number => {
  10. //toString() 方法可把一个逻辑值转换为字符串,并返回结果
  11. appState.number = Math.floor(number).toString()
  12. console.log(number)
  13. },
  14. }
  15. }
  16. //将滑块的值赋予文本
  17. export function Number(): Override {
  18. return {
  19. text: appState.number,
  20. }
  21. }

https://framer.com/projects/Slider-DEhdALNtch1LOUtLqhuG?_ga=2.172530211.129919046.1591273569-105504521.1556699041