问题描述
有很多关于调整大小(事件)无法在线工作的问题,但我只能找到实际反映我的确切问题的 one,但没有答案。
当我使用inspector时,当我的网站到达
我不确定移动版本是否真的可以在移动设备上运行,因为我目前无法进行测试,但我不确定这是否是 Chrome 的正常现象,并且该网站是否可以正常运行在台式机和移动设备上,或者我做错了什么。
相关代码:
$(window).resize((event) => {
const windowWidth = window.screen.width;
if (windowWidth <= 540) {
$('.className1').addClass('d-none');
$('.classname2').css("width","100%");
$('.classname3').css("left","3%");
$('.classname3').css("width","100%");
$('.classname4').css("width","90%");
这不是整个方法,但它基本上显示了 css 和属性根据窗口宽度下降到 540px 以下而变化的想法。
我尝试了什么:
- Document.resize(失败)
我真的希望这不是重复的,很难浏览大量的问题。
解决方法
问题不在于 resize
事件或浏览器。发生这种情况是因为您使用的是 window.screen.width
,它与屏幕相关,而不是与浏览器窗口相关。调整浏览器窗口的大小没有关系,屏幕宽度不会改变。例如,如果您的屏幕分辨率为 1900x1200,则 screen.width
将始终为 1900。因此,您应该使用 window.innerWidth
或仅使用 innerWidth
来获取视口宽度。要了解更多信息,请参阅this question。
你的代码应该是这样的:
(window).resize((event) => {
if (innerWidth <= 540) {
$('.className1').addClass('d-none');
$('.classname2').css("width","100%");
$('.classname3').css("left","3%");
$('.classname3').css("width","100%");
$('.classname4').css("width","90%");
工作代码示例(在整页中打开代码段并调整其大小):
$(window).resize((event) => {
if (innerWidth <= 540) {
document.write('It\'s working.');
}
});
<html>
<body>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
</body>
</html>