iPhone/iPad 触发意外的调整大小事件

2024-01-16

我正在开发我的网站的移动版本。我尽可能多地使用媒体查询和 CSS,但我也使用一些 javascript,例如,将导航转换为较小设备上的折叠/展开列表以节省空间。

为了处理所有这些,我尝试使用 window.resize 事件。这使得桌面浏览器在调整大小时奇迹般地发生,但我在 iPad/iPhone 上收到调整大小事件时,却出乎我的意料。

在桌面浏览器上,只有当我实际调整窗口大小时,我才会收到调整大小事件。在移动浏览器上,当我更改方向(预期)时,我会收到调整大小事件,但当我切换以展开/折叠某些内容时,我也会收到该事件。

这是一个简单的例子:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>Resize test</title>
<style>
.box {height: 10000px; background: green; display: none;}
</style>
<script>
$(function(){
    $(".opener").click(function(){
        $(".box").slideToggle();
    });
    $(window).resize(function(){
        alert("resized");
    });
});
</script>
</head>

<body>
<a href="#" class="opener">Open/close me</a>
<div class="box"></div>
</body>
</html>

当您在桌面浏览器上单击该链接时,不会出现任何警报。在 iPhone/iPad 上单击该链接,您会收到警报。这是怎么回事?


存储窗口宽度并检查它是否确实发生了变化,然后再继续您的操作$(window).resize功能:

jQuery(document).ready(function($) {

    // Store the window width
    var windowWidth = $(window).width();

    // Resize Event
    $(window).resize(function(){

        // Check window width has actually changed and it's not just iOS triggering a resize event on scroll
        if ($(window).width() != windowWidth) {

            // Update the window width for next time
            windowWidth = $(window).width();

            // Do stuff here

        }

        // Otherwise do nothing

    });

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone/iPad 触发意外的调整大小事件 的相关文章

随机推荐

  • GMap.net 中的缩放和平移

    我正在努力使GMap Net http greatmaps codeplex com 使用 WPF 内置事件控制启用多点触控 但我没有成功 我发现了一系列关于多点触控的文章 例如this http blogs msdn com b jaim
  • MVC4:嵌套部分视图丢失模型数据

    在 MVC4 项目中 我使用部分视图 该视图使用 ViewModel 并具有 GET 表单 在控制器操作中 我期望 ViewModel 对象包含一些数据 当将此部分放置在普通 cshtml 视图上时 我通过控制器操作中的预期 ViewMod
  • 开源拼写检查

    正在评估向我拥有的产品添加拼写检查 根据我的研究 需要做出的主要决定 要使用的库 词典 可以是特定地区的 英式英语 美式等 排除列表 每当检测到拼写错误时 它都可能不是拼写错误 而是 特定于用户的用语 此时用户应该能够将其添加到他的自定义排
  • 预处理器愚蠢的做法(对 #include 进行字符串化)

    注意 这个问题与 OpenCL 本身无关 请检查最后一段以获取我的问题的简洁陈述 但提供一些背景 我正在编写一些使用 OpenCL 的 C 代码 我喜欢将 OpenCL 内核的源代码保存在自己的文件中 以便于编码和维护 而不是直接将源代码作
  • 如何获取 YouTube 视频的 mp4/mov/m4v 视频链接?

    我们可以获取 youtube 上加载的任何视频的文件 url 吗 我不喜欢在我的应用程序中使用 youtube 播放器 并且想使用 MPMoviePlayerController 的实例启动它 PS 也会将其标记为 php 因为跨域的开发人
  • 实体框架提供列名称作为字符串变量

    我正在寻找获得这样的东西的方法 string col1 first name string name var query from c in ctx Customers select c name query FirstOrDefault
  • 如何删除 python 中输出末尾的空格?

    我有一个程序可以计算并打印句子中包含特定字符的所有单词 忽略大小写 Python 代码 item input ip input tolower r ip count item print r ip ip split for word in
  • 如何使用 C# 搜索一系列范围值

    我有一个像这样的值列表 1000 20400 22200 24444 范围不重叠 我想要做的是有一个 C 函数 可以存储 从数据库加载的值 然后在本地缓存 这些值的相对较大的列表 然后有一个方法来查找提供的值是否在任何范围内 这有道理吗 需
  • 需要 GLbc 优化

    为什么无法重新编译 GLibc 并关闭所有优化 即 O0 特别是在这样做时 make CFLAGS O0 w CXXFLAGS O0 w I get error glibc cannot be compiled without optimi
  • 使用未声明的类型“日期”Xcode 9 Swift 4

    这是我在 xcode 9 Playground 中的代码 class Tutorial Codable let title String let author String let editor String let type String
  • 从正则表达式模式返回不匹配的行

    如果我有一个看起来像这样的 pandas 数据框 Sequence Rating 0 HYHIVQKF 1 1 YGEIFEKF 2 2 TYGGSWKF 3 3 YLESFYKF 4 4 YYNTAVKL 5 5 WPDVIHSF 6 这
  • 使用具有多个输入的 grepl 分配组

    我有一个数据框 df lt data frame name c john david callum joanna allison slocum lisa id 1 7 df name id 1 john 1 2 david 2 3 call
  • 在 PHP 中从 JSON 数组中提取特定键值 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我收到来自
  • DBus与其他进程间通信方式的区别

    当我研究Linux进程间通信时 我知道有一些方法 管道 消息队列 套接字 信号 共享内存 信号量 并且没有名为Dbus的方法 但是今天 当我研究 Dbus 时 我读到 D Bus 是一个进程间通信 IPC 系统 请参阅 该链接 https
  • React 中的 msal.js - Azure 身份验证

    我收到错误 但 azure 中的所有访问都正常 也许我的端点是错误的 你有什么想法吗 错误 APP TEST 需要访问组织中只有管理员才能授予的资源的权限 请先请求管理员授予此应用程序的权限 然后才能使用它 我用这个 example 租户I
  • 如何跟踪SQL Server中记录的变化?

    我有下表 其中包含所有学生的跟踪记录 ID Department Date 001 English Feb 3 2017 001 English Feb 4 2017 001 Science Mar 1 2017 001 Science A
  • 程序仅在调试器之外的发布模式下崩溃

    我有相当庞大的程序 gt 10k 行 C 代码 从 Visual Studio 中启动时 它可以在调试模式或发布模式下完美运行 但从命令行手动启动时 发布模式二进制文件通常会崩溃 并不总是 带删除的行导致崩溃 bool Save const
  • 基于时间的通知架构

    我正在设计一个通知服务 服务器 我可以有两种通知 一种是立即发送 另一种是在将来的某个时间发送 是否有一个框架来处理未来的通知 我知道我可以编写后台工作人员 例如 他们可以对数据库进行采样以查找需要发送的通知 但我确信数百万人已经尝试解决这
  • 构建在 codeigniter 之上的 PHP 应用程序可以同时连接到 MySQL 和 mongoDB 数据库吗?

    我有一个内置于 codeigniter 并托管的 Web 应用程序云控 http www cloudcontrol com 我使用普通的 MySQL 数据库来进行所有数据持久化 现在除了 MySQL 数据库之外 我还想使用 mongodb
  • iPhone/iPad 触发意外的调整大小事件

    我正在开发我的网站的移动版本 我尽可能多地使用媒体查询和 CSS 但我也使用一些 javascript 例如 将导航转换为较小设备上的折叠 展开列表以节省空间 为了处理所有这些 我尝试使用 window resize 事件 这使得桌面浏览器