要实现点击下一个按钮时,卡片自动滑动到下一个或下一个卡片自动滑动到中间位置,可以使用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中给卡片容器设置合适的宽度和溢出属性来保证卡片能够水平滑动。

ReactJS卡片滑动:点击按钮自动滚动到下一个卡片

原文地址: https://www.cveoy.top/t/topic/pTQ6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录