首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在反作用旋转木马中添加幻灯片动画

问在反作用旋转木马中添加幻灯片动画
EN

Stack Overflow用户
提问于 2021-01-20 11:42:31
回答 2查看 2.7K关注 0票数 1

我正在尝试使用纯JS从旋转木马重新生成react-bootstrap并作出反应。

到目前为止,我的旋转木马每隔几秒钟就会自动切换到下一张幻灯片,并返回到开头。它还可以显示一个特定的旋转木马幻灯片的按钮点击。

但是,我无法复制从右到左的滑动动画,因为我使用slice来呈现幻灯片。我如何编辑我的代码,以包括一个滑动动画,如引导?

代码语言:javascript
复制
import React, { useState, useEffect } from "react";
import "./styles.css";

const slides = [
  {
    src:
      "https://res.cloudinary.com/tpostr/image/upload/v1553865338/paparouna/IMG_7638-01.jpg",
    alt: "slide 1",
    caption: "slide 1"
  },
  {
    src:
      "https://res.cloudinary.com/tpostr/image/upload/v1553865338/paparouna/IMG_7621-01.jpg",
    alt: "slide 2",
    caption: "slide 2"
  },
  {
    src:
      "https://res.cloudinary.com/tpostr/image/upload/v1553865337/paparouna/IMG_7615-01.jpg",
    alt: "slide 3",
    caption: "slide 3"
  }
];

export default function App() {
  const [start, setStart] = useState(0);
  const [end, setEnd] = useState(1);

  const first = () => {
    setStart(0);
    setEnd(1);
  };
  const second = () => {
    setStart(1);
    setEnd(2);
  };
  const third = () => {
    setStart(2);
    setEnd(3);
  };

  useEffect(() => {
    const timeout = setTimeout(() => {
      setStart((start) => start + 1);
      setEnd((end) => end + 1);
    }, 3000);

    if (end === slides.length + 1) {
      setStart(0);
      setEnd(1);
    }

    return () => {
      clearTimeout(timeout);
    };
  }, [start, end]);
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
      {slides.slice(start, end).map((slide, i) => (
        <div key={i}>
          <img src={slide.src} alt={slide.alt} />
          <p>{slide.caption}</p>
          <button onClick={first}>first</button>
          <button onClick={second}>second</button>
          <button onClick={third}>third</button>
        </div>
      ))}
      <p>{start} start</p>
      <p>{end} end</p>
    </div>
  );
}

我的码箱

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-20 12:06:41

只要您的三幅图像没有在html页面中同时显示,您就不能幻灯片-动画化它们。你为什么不把它们全部展示出来,像普通滑块一样在它们之间切换呢?

如果您通过更改src属性来更改图像,则无法使用动画。请参考这个答案,并从那里继续。

很抱歉让你失望..。黑客玩得开心!

但是这里有一个纯js滑块链接

票数 0
EN

Stack Overflow用户

发布于 2021-01-20 12:09:48

我不认为以这种方式实现动画效果是不可能的,因为您正在使用src属性切换b/w图像。我发现这个链接,它似乎没有使用任何外部库的工作。查看一下:https://dev.to/cooljasonmelton/css-transitions-in-react-build-a-root-beer-carousel-1mnb

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

https://stackoverflow.com/questions/65808870

复制
相关文章

相似问题

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