reactjs 同时滑出/滑入两个100%宽度元素

k7fdbhmy  于 2023-03-17  发布在  React
关注(0)|答案(1)|浏览(93)

我一直在尝试设置这个动画效果,让我可以从屏幕左侧滑出一个元素,同时将其逐渐减少到0不透明度,并在同一时间从右侧滑入一个新元素来取代它的位置。
从视觉上看,它可以正常工作,但也有一个副作用,即窗口宽度扩展到屏幕之外(通过显示水平滚动条可见)。
但是,所有过渡的设置如下:

const transitions = useTransition(items, {
    from: {
      opacity: 0,
      transform: `translateX(100%)`,
      width: "100%"
    },
    enter: {
      opacity: 1,
      transform: "translateX(0%)",
      width: "100%"
    },
    leave: {
      opacity: 0,
      transform: "translateX(-100%)",
      width: "0%"
    }
  });

我怎样才能消除那种副作用呢?

怎样才能达到同样的视觉效果而没有这种副作用呢?

luaexgnf

luaexgnf1#

对 Package 器元素样式进行以下调整:

  • 给予它一个相对位置,这样绝对定位的子元素就相对于它而不是其他祖先来定位。
  • 隐藏溢出。
  • 使它足够高,以容纳它的孩子,即使他们的2雷姆顶部的位置。
{{ height: "8rem", width: "100%", position: "relative", overflow: "hidden" }}

Demo
您可能需要调整一些东西来获得您想要的布局,但这可以处理滚动问题。

相关问题