我正在设计一个Web应用程序,它只需要100%的屏幕就意味着不需要滚动,这就是为什么我使用100vh。它在桌面上工作正常,但当我点击手机和平板电脑上的输入字段时,键盘打开,布局受到影响Click how its working .任何人都可以帮助我,我如何使用CSS或JS处理这种情况,这样布局也是正确的,也可以在键盘上打字。。提前感谢。
这里有一个链接click here,可以知道发生了什么。
我尝试的方法是,当输入字段处于活动状态时,正在压缩的屏幕大小将为特定设备增加250px的高度。
const documentHeight = () => {
const doc = document.documentElement;
const platforms = ["Android", "Linux", "arm"];
const isAndroid = new RegExp(platforms.join("|")).test(
window.navigator.userAgent
);
if (!isAndroid)
document.addEventListener("touchmove", function (event) {
event.preventDefault();
});
if (window.innerHeight < 667 && isAndroid) height = 250;
else height = 0;
doc.style.setProperty(
"--doc-height",
`${window.innerHeight + height}px`
);
};
window.addEventListener("resize", documentHeight);
let htmlTag = document.getElementsByTagName("html");
let root = document.getElementById("root");
{
if (width <= 768) {
documentHeight();
htmlTag[0].style.position = "fixed";
htmlTag[0].style.overflow = "hidden";
htmlTag[0].style.width = "100vw";
}
} else {
const doc = document.documentElement;
doc.style.removeProperty("--doc-height");
}
});
1条答案
按热度按时间kxxlusnw1#
你的布局也完全重叠,如果打开这个网站在移动的上的横向模式。你试图适应一个小空间的信息很多。
依我看,有两种可能。
第一步是通过你的愿望,以100vh的速度完成所有的事情。几乎所有的页面都不仅仅是100vh。如果你这样做,你的页面看起来不会更糟。
第二种方法是隐藏移动的上的关于、主要和页脚的内容,如果你点击它们中的每一个,它们都会翻转内容。
#EDIT:可能是您的愿望:
首先检查媒体查询(最好的选择,因为用户代理检测不适合现代网站)你也可以观看here并添加其他东西来检测移动的。
然后添加一个eventletener到输入,如果它们是活动的=〉添加一些空格。
希望我能帮上忙