orientationchange 事件触发滚动和调整大小事件

2024-02-17

对于我正在从事的一个项目,我遇到了一个奇怪的问题,我无法在这里(或其他任何地方)找到答案。

我尝试创建一个 Fiddle 来演示发生的情况,但由于我的脚本的性质以及 jsfiddle 的功能方式,它无法正常工作。反正,这是小提琴的链接 http://jsfiddle.net/c_kick/Wcnef/所以至少你会有代码。

我想要发生什么

执行单个处理程序(onViewportChange)三种可能window事件:resize, orientationchange and scroll。根据事件类型,处理程序将确定要做什么。听起来很简单。

我做了什么

对于此示例,出于测试目的,我限制了处理程序以回显事件类型:

var onViewportChange = function(e) {
    alert(e.type);
};

我将处理程序绑定到事件:(我也尝试过.bind()带有一系列事件和几个单独的绑定)

$(window).on({
    'orientationchange resize scroll' : function(e){
        onViewportChange(e);
    }
});

HTML 是完全空的,除了任意的基本元素(doctype、html、body,当然还有 jquery 和这个脚本)

实际发生了什么

现在事情变得很奇怪:这些事件在桌面浏览器上正常触发(主要是由于缺少orientationchange事件触发),但在移动设备上却不行(在iOS6+ iPad第三代和iOS6+ iPhone 5上测试)。当我旋转设备时;

  • iPad 和 iPhone 都火力全开:orientationchange, resize其次是scroll
  • iPhone 上的 Chrome 起火了resize其次是orientationchange
  • 我借来的一部 Android 手机触发了orientationchange其次是resize

(请注意,由于竞争条件,事件的顺序可能不准确。)

这就是为什么我将它链接到orientationchange事件:当我删除orientationchange事件(离开resize and scroll), 只有scroll事件在设备旋转时触发,但不再是resize event.

我不明白为什么所有事件都会同时发生。至少;我可以想象一个resize被触发orientationchange因为窗户尺寸改变了,但是scroll?

有谁知道为什么会发生这种情况?

edit我在这里设置了一个演示:http://beta.hnldesign.nl/orientation/index.html http://beta.hnldesign.nl/orientation/index.html


嗯,试试这个(摘自 jQuery API 文档...)http://api.jquery.com/on/ http://api.jquery.com/on/

$(window).on({
  orientationchange: function(e) {
    onViewportChange(e);
  }, resize: function(e) {
    onViewportChange(e);
  }, scroll: function(e) {
    onViewportChange(e);
  }
});

这应该可行...也许你需要稍微调整一下代码

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

orientationchange 事件触发滚动和调整大小事件 的相关文章

  • 如何使用 jQuery 进行同步请求?

    为什么不返回该函数的responseText function LoadBookmarksAsXml return ajax type GET async false url http www google com bookmarks ou
  • 通过 jQuery 选择动态 HTML 元素

    我正在构建一个 ASP NET MVC 应用程序 并且正在使用jQuery Blueimp https github com blueimp jQuery File Upload动态添加到页面的 PartialView 上的插件 根据插件的
  • Django:使用条件 {% extends %} 使 {% block "div" %} 成为条件

    我想分享一个 AJAX 和常规 HTTP 调用之间的模板 唯一的区别是一个模板需要扩展 base html html 而另一个则不需要 我可以用 extends request is ajax yesno app base ajax htm
  • MailTo 从 Javascript

    我有一个链接按钮 用于从页面内容构建邮件 从 javascript 启动它而不打开空白窗口或干扰调用它的窗口的最佳方法是什么 function Email var sMailTo mailto var sBody var alSelecte
  • 如何在 DOM 中的每个元素中调用函数,即使它们是动态创建的

    我想对 DOM 上的特定元素调用函数 例如 red css backgroundColor pink 它适用于 DOM 中已经存在的任何元素 但我也希望在动态添加到 DOM 的元素中调用此方法 我尝试过类似的事情 red on functi
  • JQuery datepickers-从开始日期设置结束日期

    使用了两个 Jquery 日期选择器 StartDate 和 EndDate
  • 将纯文本转换为 HTML

    我有一个脚本 在某个时刻我可以通过 Ajax 调用获取 HTML 数据 我必须将此 HTML 转换为纯文本 如下所示 div text data 我现在想扭转这一局面 再次将文本设为 HTML 我有一个简单的 Jquery 方法可以做到这一
  • 我怎样才能让这个脚本在 WordPress 上运行?

    我有这个脚本 document ready function text1 click function this hide 代码html div class div1 p class text1 text to appear when th
  • jQuery 表格排序

    我有一个非常简单的 HTML 表格 有 4 列 Facility Name Phone City Specialty 我希望用户能够排序设备名称 and City only 我如何使用 jQuery 进行编码 我发现了这个 我想我应该投入
  • JQuery:将 FormData 和 csrf 令牌一起发布

    Is the data 下面的行正确吗 我想将表单数据和 csrf 令牌发布到 Django 视图函数 file upload on change function var currentpath window location pathn
  • 如何在 Jquery/Javascript 中绑定模糊和更改,但只触发一次函数?

    我试图在选择元素更改时触发函数 由于 Ipad 在 on change 方面遇到问题 我还想绑定到 blur 这在 Ipad 上工作得很好 但是我不希望两个事件都触发该函数两次 所以我需要某种挂钩来确保两个事件是否都触发change and
  • Rails 3:如何让用户在表单中至少选择一个复选框?

    我有一个表单 用户在提交表单之前必须选中至少一个复选框 有没有任何插件可以处理这个问题或者jquery可以应用于我的表单 不幸的是我完全是一个 jquery 菜鸟 上面的所有答案都显示了如何在客户端执行此操作 这确实可能更好 正如您的问题标
  • 使用cheerio 检索href

    我有一个下载的 html 文件 看起来像这样 div div div div style height 11px color white font size 9px font weight bold div div style border
  • Bootstrap Affix Nav 导致下面的 Div 向上跳转

    我使用 Bootstrap 的 Affix 函数创建了一个 JSFiddle 以便在向下滚动并且标题移出视图时使导航保持在屏幕顶部 我遇到的问题是 当使用纯 HTML 时 导航下方的文本会过早地跳起来并隐藏在导航后面 查看有问题的代码her
  • Setinterval随着指数时间减少

    我有一个带有 setinterval 的 mousedown 事件 我希望间隔时间是可变的 所以第一个是 500 第二个是 500 2 250 等等 有什么建议吗 plus mousedown function e increment 20
  • 是否可以将对象从 jquery 发布到 Bottle.py?

    这是jquery ajax type POST url posthere dataType json data myDict 1 1 2 2 success function data do code 这是蟒蛇 route posthere
  • 如何按多个项目搜索/过滤列表?

    我正在寻找一个示例 或者可能是一个关于通过在文本框中输入的多个项目来过滤 搜索项目列表的方法的一点提示 假设我有一个列表 ul li Coffee li li Tea li li Milk li li Water li li Juice l
  • jQuery 检查字体粗细是正常还是粗体

    我使用以下代码设置 font weight 属性 this css font weight normal 现在我想检查一个元素是否具有粗体或正常的字体粗细属性 我该怎么做 你可以使用以下方法得到它 fontWeight this css f
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • 弹出窗口的动态高度取决于内容,可能吗?

    是否有可能获得一个宽度始终为 400px 的弹出窗口 但根据弹出窗口中的内容动态高度 我已经看到了这个 但不知道如何将其应用到弹出窗口 调整 iframe 的宽度高度以适应其中的内容 https stackoverflow com ques

随机推荐