繁体   English   中英

调整窗口大小时,无法在特定的div上调整大小

[英]Disable resizing on a specific div when window is resized

我有一个包含主屏幕和版本弹出窗口的应用程序。 两者都是div ,弹出divz-index更大,并且覆盖了整个屏幕:

<div id="my-main-screen">
  <!-- ... -->
</div>
<div id="my-popup" style="z-index: 1; width: 100%; height:100%; top:0px; left:0px">
  <!-- ... -->
</div>

我的问题如下:

  • 在移动设备上,在弹出窗口中集中显示和隐藏文本字段会显示和隐藏虚拟键盘,从而触发windowresize事件。
  • 调整大小还可以调整主屏幕div大小 ,这是无用且缓慢的,因为我的主屏幕相当复杂
  • 结果是,我的弹出div中集中在文本字段上和外的内容感到缓慢且无响应。

我尝试隐藏主屏幕div。 它在弹出窗口中时起作用...但是当我关闭弹出窗口时,我必须使主屏幕再次可见,这和调整大小一样慢。

有没有一种方法可以只在主屏幕div上禁用大小调整而不隐藏它?

在黑暗中拍摄,但是您可以尝试在视口标签中将最大比例设置为1,以使文档在移动设备上无法缩放...

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

设置宽度<div>调整 window 的大小时</div><div id="text_translate"><p>所以我在 Vuejs 中得到了这个应用程序,它被css grid划分为 3 个 div 基本上:一个sidebar 、一个configpanel和一个preview 。 我想根据当前屏幕大小和屏幕大小调整时以px为单位设置preview div 的宽度</p><p>为了澄清起见,我制作了一个网站的 gif 图像,它几乎完全符合我的要求: <a href="https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a" rel="nofollow noreferrer">https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a</a></p><p> 正如您在 gif 中看到的,每次调整屏幕大小时,特定的&lt;div&gt;都会由于某种原因(不知道为什么或如何)被分配一个新的 class 并且 div 的width会自动更新为新的px值。</p><p> 起初我以为我可以在created()钩子中做这样的事情:</p><pre> window.addEventListener("resize", () =&gt; { let preview = window.document.querySelector(".preview"); preview.style.width = `${preview.offsetWidth}px`; });</pre><p> 但这不起作用。</p><p> 我在<a href="https://codesandbox.io/s/hopeful-feather-ywh6z?file=/src/components/Preview.vue:125-430" rel="nofollow noreferrer">这里</a>的codesandbox中设置了一个非常简单的示例项目。</p><p> 理想情况下,我想知道如何像网站在 gif 中那样动态设置像素width 。</p><p> 此外,出于好奇,我想知道每次调整屏幕大小时该特定网站为何以及如何生成新的 class (我已经看过几次了,我想知道它是什么)。</p></div>

[英]Setting the width of a <div> when resizing the window

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 窗口调整大小后调整图像大小? 调整浏览器窗口大小时禁用jquery插件 使用.resizable()调整父div的大小时,停止调整子div的大小 调整窗口大小时重置div高度 调整大小后,div移出窗口 调整窗口大小时重新验证DIV的尺寸 调整窗口大小时删除特定的类 调整窗口大小时无法禁用滚动功能 设置宽度<div>调整 window 的大小时</div><div id="text_translate"><p>所以我在 Vuejs 中得到了这个应用程序,它被css grid划分为 3 个 div 基本上:一个sidebar 、一个configpanel和一个preview 。 我想根据当前屏幕大小和屏幕大小调整时以px为单位设置preview div 的宽度</p><p>为了澄清起见,我制作了一个网站的 gif 图像,它几乎完全符合我的要求: <a href="https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a" rel="nofollow noreferrer">https://gyazo.com/d667756474e7f4fa18e2d5d64a0dee5a</a></p><p> 正如您在 gif 中看到的,每次调整屏幕大小时,特定的&lt;div&gt;都会由于某种原因(不知道为什么或如何)被分配一个新的 class 并且 div 的width会自动更新为新的px值。</p><p> 起初我以为我可以在created()钩子中做这样的事情:</p><pre> window.addEventListener("resize", () =&gt; { let preview = window.document.querySelector(".preview"); preview.style.width = `${preview.offsetWidth}px`; });</pre><p> 但这不起作用。</p><p> 我在<a href="https://codesandbox.io/s/hopeful-feather-ywh6z?file=/src/components/Preview.vue:125-430" rel="nofollow noreferrer">这里</a>的codesandbox中设置了一个非常简单的示例项目。</p><p> 理想情况下,我想知道如何像网站在 gif 中那样动态设置像素width 。</p><p> 此外,出于好奇,我想知道每次调整屏幕大小时该特定网站为何以及如何生成新的 class (我已经看过几次了,我想知道它是什么)。</p></div> 调整窗口大小时保持div的长宽比
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM