【问题标题】:How do I make div refresh when rotating mobile (portrait to landscape or vice versa)旋转移动设备时如何使div刷新(纵向到横向,反之亦然)
【发布时间】:2015-03-18 22:53:30
【问题描述】:

我将导航菜单分为两部分(左侧和右侧),中间有一个隐藏/显示导航切换按钮。

导航栏接缝的行为就像我想要的那样。但是当我检查手机并将设备从纵向旋转到横向时,反之亦然。导航没有回应。即导航中的菜单会出现在屏幕之外,否则会出现在错误的位置。 我确实通过媒体查询解决了这个问题 但是我在媒体查询中的代码(宽度:100%)与其他地方的样式表中的代码完全相同。 我使用什么最大宽度并不重要

至少导航不能正常运行。我的第一个想法是制作一个完全没有任何媒体查询的响应式网站。我在早期失败了:)) 就像现在当我有一个媒体查询时,浏览器会去检查屏幕的宽度是否发生变化,或者类似的事情。

对不起,介绍太长了。现在我需要你的帮助

  • 我使用的媒体查询可能有问题吗?
  • 你有一个 提供的选项?
  • 你推荐什么宽度还是没关系?

请检查我的代码: CSS

@media only screen and (max-width: 2767px) {
    .nav {
        width:100%;
    }
    .hidden {
        display:none;
    }
    .normal {
        display:block;
    }
    .center {
        margin: 0 auto;
    }
    .navtog {
        position:fixed;
        z-index:1500;
        left:50%;
        top:25px;
        transform:translate(-50%, -50%);
    }
    .nav {
        font: 120% oswald;
        color:#fff;
        position:fixed;
        width:100%;
        background-color: rgba(0, 0, 0, 0.29);
        z-index:1050;
        margin: 0 auto;
    }
    .nav_r {
        text-align:right;
        padding-right:10%;
    }
    .nav_l {
        padding-left:10%;
        position:absolute;
        top:0;

HTML 和 JS

<script>
    function toggle_visibility(id) {
        var e = document.getElementById(id);
        e.classList.toggle('hidden');
    }
</script>

<div class="center">
    <div class="navtog"> 
        <a onclick="toggle_visibility('navbar');" style="cursor:pointer;">
            <img src="img/toggle.png" />
        </a>
    </div>
</div>

<div id="navbar" class="hidden nav">
    <div class="nav_r">navigation items Right</div>
    <div class="nav_l">navigation items Left</div>
</div>

【问题讨论】:

  • 我也用&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;

标签: javascript html css mobile


【解决方案1】:

事实上,您的媒体查询适用于不超过 2767 像素的所有屏幕尺寸(基本上全部)。移动优先方法中的媒体查询通常包含min-width,因此在非常小的尺寸与较大的平板电脑尺寸会发生不同的事情。试试这个:

@media only screen and (min-width: 500px) {
    ...

Demo

您可能需要反转更多显示属性以使其按预期工作,但断点通常应位于纵向和横向宽度之间。

【讨论】:

  • 无论我在查询中使用什么宽度,我的代码都能正常工作。浏览器可以在打开设备屏幕时刷新 div。
  • 我明白我用错误的语法解释。对此深表歉意。
  • 我想有一个可选的方式。比媒体查询
  • 媒体查询是做到这一点的正确方法。没有必要“刷新”任何东西。
  • 好的。感谢您的时间。我很感激。抱歉打扰了。我认为这些媒体查询会使网站变慢...
猜你喜欢
  • 2012-04-04
  • 2022-07-07
  • 2021-12-27
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
相关资源
最近更新 更多