【发布时间】:2020-12-15 15:34:00
【问题描述】:
我试图弄清楚当我滑动到下一个或上一个项目时如何让我的 Reactstrap 轮播向上滚动。
这正是我需要它工作的方式Bootstrap Carousel scroll top when slide
但是我使用 reactstrap 节点模块以另一种方式做事,我不太了解如何使 window.scrollTo(0,0) 之类的东西与下一个和上一个滑动按钮相关。
代码如下:
import React, { useState, Component } from 'react';
import fotos2 from '../data/fotos2'
import {
Carousel,
CarouselItem,
CarouselControl,
CarouselIndicators,
CarouselCaption
} from 'reactstrap';
const Example = (props) => {
const [activeIndex, setActiveIndex] = useState(props.id);
const [animating, setAnimating] = useState(false);
const scrollTop = () => {
window.scrollTo(0,0);
};
const next = () => {
if (animating) return;
const nextIndex = activeIndex === fotos2.length - 1 ? 0 : activeIndex + 1 ||
setActiveIndex(nextIndex);
scrollTop();
}
const previous = () => {
if (animating) return;
const nextIndex = activeIndex === 0 ? fotos2.length - 1 : activeIndex - 1;
setActiveIndex(nextIndex);
scrollTop();
}
const goToIndex = (newIndex) => {
if (animating) return;
setActiveIndex(newIndex);
}
const slides = fotos2.map((item) => {
return (
<CarouselItem data-pause="hover" style={{ minHeight: '20em' }}
className="custom-tag"
tag="div"
key={item.url}
onExiting={() => setAnimating(true)}
onExited={() => setAnimating(false)}
>
{/* <img src={props.foto} alt={item.altText}/> */}
<img className="imagenCarousel" src={item.url} alt={item.altText} />
<CarouselCaption className="text-danger" captionText={item.caption} captionHeader={item.caption} />
</CarouselItem>
);
});
return (
<div>
{/* interval={false} para el slider */}
<Carousel
activeIndex={activeIndex}
next={next}
previous={previous}
interval={false}
>
<CarouselIndicators items={fotos2} activeIndex={activeIndex} onClickHandler={goToIndex} />
{slides}
<CarouselControl direction="prev" directionText="Previous" onClickHandler={previous} />
<CarouselControl direction="next" directionText="Next" onClickHandler={next} />
</Carousel>
</div>
);
}
export default Example;
我已经尝试了几个解决方案,但它使主窗口向上滚动,而不是仅滚动包含轮播的 Modal
提前感谢您的宝贵时间!
【问题讨论】:
标签: javascript reactjs react-bootstrap reactstrap bootstrap-carousel