html - 在移动设备上添加滚动的绝对定位元素
问题描述
我想要一个占据客户端窗口的完整高度和宽度的页面。我希望能够使用 position=absolute 在页面内定位 div,并具有指定的变换。他们将在桌子上打牌,所以他们会有 x、y 和旋转。这一切都很好,但是在移动设备上,当绝对定位的元素之一超出父元素的边界时,浏览器会添加一个滚动条并让您滚动到超出边界的元素。我发现我可以通过在父级上使用 clip-path: inset(0) 来剪辑绝对定位元素的呈现,但是移动页面仍然允许您滚动到应用程序之外的白色部分。有没有其他方法可以将视口限制在主体上,这样我就可以保持整页、非滚动的体验?我不认为溢出:
这是一个例子。https://ddeklotz-static-page.s3.amazonaws.com/example.html
<html>
<head>
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="app">
<div class="square"/>
</div>
</body>
</html>
body {
margin: 0;
overflow: hidden;
}
.app {
background-color: red;
min-height: 100vh;
clip-path:inset(0);
}
.square {
background-color: blue;
width: 100px;
height: 100px;
position: absolute;
transform: translate(330px, 50px) rotate(20deg);
}
解决方案
我想我找到了一些可行的方法:我需要将“user-scalable=0”添加到我的视口元标记的内容中。看起来像在缩小视口以显示剪辑的 div 边界区域的全部范围之前,这不是我想要的。我认为,禁用用户缩放意味着我们只保留布局视口。
看起来我也可以使用 position:fixed (而不是 absolute)来解决这个问题,但这会使 div 的定位更加困难(因为它们的父级不太可能与视口具有相同的原点)。
推荐阅读
- java - 为什么 AES 产生不同的结果以及为什么 DES 不产生
- java - DMS-50763 oracle weblogic 中的错误 12 个可能的原因
- java - 如何查看我的服务的锯齿机文档?
- python - How to quickly mask different slices in my array?
- qt - QGraphicsItem,如何在孩子上方绘制元素?
- perl - 我如何使用 perl 模块 XML::LibXML 创建 xml 内容/文档
- java - 如何对 Linux 上的 Apache Accumulo 安装进行故障排除?
- sql - 更新表时触发
- python - 将 pandas df 写入 excel 时没有名为 xlsxwriter 的模块错误
- list - 在具有动态高度的同一页面上颤动两个 listview.builder