首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在React Motion上进行简单的淡入淡出?

如何在React Motion上进行简单的淡入淡出?
EN

Stack Overflow用户
提问于 2019-08-05 06:07:57
回答 2查看 362关注 0票数 1

我基本上有这样的想法:

代码语言:javascript
复制
<Motion defaultStyle={{opacity: 0}} style={{ opacity: spring(1, { stiffness: 210, damping: 20 }) }}>{style => {
  return <div style={style}>
</Motion>

但是不透明会被砍掉,而且需要一段时间。

我只想说“淡入淡出300ms”。这样的事情可以用react-motion来完成吗?还是必须使用react-transition-group?

EN

回答 2

Stack Overflow用户

发布于 2020-05-24 01:26:31

我不认为这是可以改变的,但速度似乎可以从stiffness and dampinghttps://github.com/chenglou/react-motion/issues/265调整

您可以尝试使用帮助器来计算这些值,http://chenglou.github.io/react-motion/demos/demo5-spring-parameters-chooser/

在我看来,问题在于挂载/dismount的问题,但是如果你不关心,你可以直接将mount设置为false。

代码语言:javascript
复制
const Fade = ({
  Style, on, mount, children
}) => {
  const [animating, setAnimating] = useState(true)
  const onRest = () => { setAnimating(false) }
  useEffect(() => { setAnimating(true) }, [on])

  if (mount) {
    if (!on && !animating) {
      return null
    }
  }

  return (
    <Style
      on={on}
      onRest={onRest}
    >
      {children}
    </Style>
  )
}

Fade.propTypes = {
  Style: elementType,
  on: bool,
  mount: bool,
}
票数 0
EN

Stack Overflow用户

发布于 2020-07-23 15:42:30

你不应该使用给定的" style“作为风格道具,你应该这样使用它:

代码语言:javascript
复制
<Motion defaultStyle={{opacity: 0}} style={{ opacity: spring(1, { stiffness: 210, damping: 20 }) }}>{style => {
  return <div style={{opacity: style.opacity}>
</Motion>

请看我的例子:fade example with delay using hooks

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

https://stackoverflow.com/questions/57350527

复制
相关文章

相似问题

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