ReactJS卡片滑动:点击按钮自动滚动到下一个卡片
要实现点击下一个按钮时,卡片自动滑动到下一个或下一个卡片自动滑动到中间位置,可以使用React的Scroll组件和ref属性来实现。
首先,在你的组件中创建一个ref引用,用于获取卡片容器的DOM元素。例如:
class CardList extends React.Component {
cardListRef = React.createRef();
// ...
}
然后,在下一个按钮的点击事件处理程序中,使用Scroll组件的scrollIntoView()方法来滚动到下一个卡片。该方法可以接受一个配置对象,用于指定滚动行为。例如:
class CardList extends React.Component {
// ...
handleNextButtonClick = () => {
const cardListElement = this.cardListRef.current;
if (cardListElement) {
const nextCardElement = cardListElement.querySelector('.active').nextSibling;
if (nextCardElement) {
nextCardElement.scrollIntoView({
behavior: 'smooth',
block: 'center',
inline: 'center'
});
}
}
}
// ...
}
在上述代码中,我们首先通过ref引用获取卡片容器的DOM元素,然后使用querySelector()方法选择当前活动卡片的下一个兄弟节点。接下来,我们使用scrollIntoView()方法将下一个卡片滚动到可见区域,通过指定behavior为'smooth'来实现平滑滚动效果,并通过指定block和inline属性为'center'来将卡片滚动到中间位置。
最后,在render()方法中将ref引用绑定到卡片容器的ref属性上。例如:
class CardList extends React.Component {
// ...
render() {
return (
<div ref={this.cardListRef}>
{/* 卡片列表 */}
</div>
<button onClick={this.handleNextButtonClick}>下一个</button>
);
}
}
通过上述步骤,你就可以实现点击下一个按钮时,卡片自动滑动到下一个或下一个卡片自动滑动到中间位置的功能了。记得在CSS中给卡片容器设置合适的宽度和溢出属性来保证卡片能够水平滑动。
原文地址: https://www.cveoy.top/t/topic/pTQ6 著作权归作者所有。请勿转载和采集!