垂直鼠标在<div>上滚动并带有溢出-x:滚动

问题描述

我创建了一个简单的帖子容器,该容器可以滚动浏览多个卡片组件。但是,由于大多数用户无法水平滚动(使用常规鼠标),因此我需要从左->右到顶部->底部更改滚动行为,同时执行常规的overflow-x:滚动。有没有一种简单的方法来实现此而不使用jquery

我的代码:

  .main {
  ...
  height: 100vh;
  max-width: 100vw;
  overflow-x: hidden;

  &__feed {
    position: relative;
    height: 70vh;
    width: 100%;
    overflow-x: hidden;
    overflow-y: hidden;

    &__view {
      display: block;
      position: relative;
      height: 100%;
      overflow-x: scroll;

      &__items {
        position: absolute;
        display: flex;
        align-items: flex-start;
        left: 0;
        width: auto;
        height: 100%;

        // CHILD ELEMENTS (CARDS)
        & > * {
          width: 18vw;
          margin-right: $spacing-xs;

          @include media(tab-port) {
            word-break: break-all;
            width: 21rem;
          }
        }
      }
    }
  }
}

JSX:

   <div className='main'>
    <div className='main__feed'>
                <Header title={title} />
                <div className='main__feed__view'>
                  <div className='main__feed__view__items'>
                    {posts && filter === undefined
                      ? posts.map((post) => (
                          <Card
                            title={post.title.rendered}
                            content={post.content.rendered}
                            category={post.categories[0]}
                          />
                        ))
                      : posts
                          .filter((post) => post.categories[0] === filter)
                          .map((post) => (
                            <Card
                              title={post.title.rendered}
                              content={post.content.rendered}
                              category={post.categories[0]}
                            />
                          ))}
                  </div>
                </div>
              </div>
            </div>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)