html - HTML/CSS - 在第一项之后滚动捕捉,之后继续定期滚动
问题描述
我有一个水平滚动框,中间有两个项目。第一个项目是一个大的div
。我试图让滚动捕捉到第一个项目的末尾,然后定期滚动第二个项目div
及其溢出的内容。这是一个演示我当前设置的 CodePen。
的HTML:
<div class="snap-row">
<div class="snap-section large"></div>
<div class="snap-section">
<div class="items">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>
和CSS:
.snap-row {
align-items: stretch;
display: flex;
overflow-x: auto;
padding-bottom: 12px;
scroll-padding: 32px;
scroll-snap-type: x mandatory;
width: 100%;
}
.snap-section {
align-items: flex-start;
display: inline-flex;
flex-direction: column;
justify-content: center;
scroll-snap-align: start;
width: 50%;
}
.snap-section.large {
background: blue;
}
.items {
background: chartreuse;
font-size: 0;
padding: 0 32px;
white-space: nowrap;
}
.item {
background: red;
box-sizing: border-box;
display: inline-block;
height: 300px;
margin: 0 8px;
width: 300px;
}
非常感谢!
解决方案
您需要添加一些CSS:
.snap-section.large {
background: blue;
scroll-snap-align: start;}
这是为了保持大元素可见,等待滚动。
.item {
scroll-snap-align: start;}
这是为了在用户滚动时保持小元素可见,否则它会迅速回到大元素。
它现在应该可以工作了。
推荐阅读
- css - 如何删除每个反应视图底部的空格?
- docker - 如何使用常规方式运行基于 docker 的 mssql-tools
- python - 我正在用 python 构建一个 CNN,但是在训练它时它会停止训练并给我一个警告
- heroku - Heroku:网站未显示
- ruby-on-rails - Rails 6 如何链接 assets/config/manifest.js 中的子文件夹
- saml-2.0 - WebSSO 配置文件的 SAML 身份验证请求不得指定任何 SubjectConfirmations
- spring-boot - Swagger UI 一直无法推断弹出窗口
- python - 未找到带有参数“(”,)”的“idnome”的反向操作。尝试了 1 种模式:['viewInscricao/(?P
[0-9]+)/$'] - apollo-server - 直接从网关调用实现服务
- google-app-engine - 部署node js app app engine google cloud "Forbidden" (403)