javascript - 更改移动设备上的滚动轴(触摸)
问题描述
我有一个可以水平滚动的容器。这是通过将容器旋转 90 度来完成的。然而,这只是一种视觉解决方法:视觉水平滚动是通过物理垂直滚动完成的。在移动设备上,这是非常违反直觉的。
有没有办法操纵滚动行为,以便可以使用水平触摸手势滚动容器?
这是容器的简化演示:
.item {
background: black;
height: 50px;
width: 50px;
margin: 5px;
}
.container {
background: yellow;
width: fit-content;
height: 300px;
overflow-y: scroll;
transform: rotate(-90deg);
transform-origin: top right;
}
<div class="container">
<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 class="item"></div>
</div>
解决方案
实际上不是使用变换,而是将元素并排放置在弹性容器中。
因为您不希望元素随着容器大小而缩小,所以您可以在项目上设置最小宽度:
.item {
background: black;
height: 50px;
width: 50px;
margin: 5px;
min-width:50px;
}
.container {
display:flex;
background: yellow;
width: 300px;
overflow-x: scroll;
}
<div class="container">
<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 class="item"></div>
</div>
推荐阅读
- python - 使用 Pandas 和 Numpy 优化 Vanilla Python
- python - 为什么 mypy 不能区分通用 python 类中的 Qt 小部件类型?
- blazor - 从 ASP.NET Web App 到 Blazor 需要替换 Microsoft.AspNet.FriendlyURL
- react-native - 尝试在 vanilla React Native 项目中解决 @expo/vector-icons/FontAwesome 时出错
- javascript - 通过 html 读取和写入 json 而不使用 php
- scikit-learn - 如何在谷歌 colab 中安装 pyearth?
- ssms - SSMS 扩展在某些机器上启动缓慢
- amazon-web-services - 在 AWS Cloud9 中,是否可以通过实例元数据或 cli 知道使用会话的人的用户名?
- javascript - compress.js 直接在 uwsgi 下而不是 nginx 下制作 CACHE
- java - 一旦 ArrayLists 无法再合并,如何退出 while 循环?