html 如何通过移动的刷卡?

k7fdbhmy  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(110)

我使用以下选项卡,并希望能够通过他们在移动的滑动。
通过滑动活动选项卡的内容。
此外,是否可以添加一个平滑滚动的效果,在滑动后,视口正好停在一个标签上,而不是在中间的某个地方?
第一个
我读到过关于在移动的上制作一个完全响应/可触摸的div的文章,但我并不真正理解,而且我也不能在我的标签页上重现它。
任何帮助都是非常感谢的

pu3pd22g

pu3pd22g1#

首先给父div提供以下规则。

#tab {
    display: flex;
    overflow: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
  }

scroll-snap-type使其中一个选项卡必须始终位于视口上。
现在给所有的孩子们制定以下规则。

#tab > * {
    flex-shrink: 0;
    width: 100%;
    scroll-snap-align: start;
    scroll-margin-top: 1rem;

    padding: 1rem 0.4rem;
  }

挠曲收缩:0将更改flex子级的默认行为并阻止其收缩。scroll-snap-align告诉子级滚动行为的对齐位置。scroll-margin-top将在滚动时在顶部保留边距。
现在对js做一点修改。

const btn = [].slice.call(document.getElementsByTagName("button"));
btn.forEach((item, index) => {
  item.addEventListener("click", function () {
    document.getElementById("tab").children[index].scrollIntoView();
  });
});

scrollIntoView()将任何元素滚动到视区(如果尚未进入视区)。
这样你也可以在移动的上执行触摸滚动。现在结合所有的法术你得到你所要求的。
第一个

相关问题