【问题标题】:JQuery simplemodal autoposition fails when focused on a textbox in webkit当专注于 webkit 中的文本框时,JQuery simplemodal 自动定位失败
【发布时间】:2013-05-08 13:31:40
【问题描述】:

我使用的是 SimpleModal 1.4.4,当我在 ipad 上打开页面时,它的行为很奇怪。

模态框的 autoPosition 设置为 true。当它加载时,它显示模态成功居中。

在模式中,我有用户和密码的文本框。当我专注于用户文本框时,虚拟键盘会打开,缩小视口,但模式会继续在其位置上,这没关系。

实际上,问题出在我输入内容时。发生了一个奇怪的行为,模态本身“移动”了一些像素。然后文本框就被隐藏了。

我发现了一个常见的行为,如果我向上滚动页面以查看隐藏的 texbox,清除 texbox 然后输入一个新值,它会向上或向下移动与滚动的“相同”数量的像素我'已经做好了。

总结:看起来每次我在文本框上输入一个值时它都会自动定位模态,并且它的计算是基于我之前所做的滚动:

  • 如果我做一个小滚动,然后在文本框上输入一个新值,弹出窗口会移动一点。
  • 如果我进行长滚动,然后在文本框上输入新值,弹出窗口会移动得太远。

如果我禁用自动定位,它不会发生,但是由于默认的 css 值,弹出窗口本身变得不可见。

我的选择是:

  • 要禁用自动定位,请在 popup-container 上设置 position:relative,然后正确更改弹出边距以使其在屏幕上居中
  • 使用自动定位找到可能的解决方法。

我真的很愿意使用第二种方法,所以我需要帮助来进一步调查或了解是否有人有这种行为和困难。

提前致谢!

【问题讨论】:

    标签: jquery webkit position focus simplemodal


    【解决方案1】:

    使用“固定”选项:

    $(element).modal({fixed: false});证明——https://code.google.com/p/simplemodal/issues/detail?id=80

    我的代码

     $.modal(data, {
                            minWidth: 350,
                            maxWidth: 400,
                            maxHeight: 450,
                            autoResize: false,
                            overlayClose: false,
                            fixed: false,
                            opacity: 80,
                            onShow: runPopup
                        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      相关资源
      最近更新 更多