首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拖动或单击时反应弹簧动画

拖动或单击时反应弹簧动画
EN

Stack Overflow用户
提问于 2020-07-21 23:16:32
回答 1查看 703关注 0票数 0

使用react-springreact-use-gesture,我想有一个旋转木马动画,可以通过拖动或点击一个按钮来激活。

我想出了一个解决方案:https://codesandbox.io/s/viewpager-6o78r?file=/src/index.js

setTimeout放入动画帧的循环中,但我觉得肯定有更好的方法。我这样做的方式可能并不流畅,因为我没有缓动等等。有没有一种方法可以在我已经创建的弹簧上使用fromto属性,以供拖动手势使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-22 19:38:10

我还不经常使用useSprings函数,但我想我想出了一个更简单的解决方案:

代码语言:javascript
复制
  const handleNextPage = () => {
    if (index.current < pages.length - 1) {
      index.current = index.current + 1
      set(i => ({
        x: (i - index.current) * window.innerWidth,
        scale: 1,
        display: 'block'
      }))
    } 
  }

我还添加了一个可选的动画,当你在图像的末尾时,为了得到反馈,你在末尾。它有两种状态,一个是100像素的过量烟尘,另一个是回来的。我使用超时设置了两个状态,但它可能会以一种更优雅的方式完成。

代码语言:javascript
复制
  const handleNextPage = () => {
    if (index.current < pages.length - 1) {
      index.current = index.current + 1
      set(i => ({
        x: (i - index.current) * window.innerWidth,
        scale: 1,
        display: 'block'
      }))
    } else {
      set(i => ({
        x: (i - index.current) * window.innerWidth - 100
      }))
      setTimeout(
        () =>
          set(i => ({
            x: (i - index.current) * window.innerWidth
          })),
        500
      )
    }
  }

整个示例:https://codesandbox.io/s/viewpager-5pgl5?file=/src/index.js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63017695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档