【问题标题】:ios viewport initial-scale not honored after on-screen keyboard屏幕键盘后不支持ios视口初始比例
【发布时间】:2013-08-07 20:51:34
【问题描述】:

我有一个非响应页面需要通过 iframe 包含在内。 为了显示整个 iframe,我使用 javascript 动态设置视口宽度和比例。 当我准备好关闭 iframe 时,我将视口宽度和比例重置为原始值。

通常这可以正常工作。 但是,如果打开屏幕键盘(例如,在文本输入焦点上)iOS 拒绝接受任何进一步的缩放。它将尊重视口调整大小,而不是初始比例。 有趣的是,如果您旋转设备,它最终会遵循初始比例。

我认为这可能只是一个 iOS 错误。任何建议将不胜感激。

【问题讨论】:

    标签: javascript html ios css


    【解决方案1】:

    所以看来诀窍只是再次触发键盘。一旦键盘打开,您设置的视口比例将立即生效。

    让键盘弹出说起来容易做起来难。基本上你必须处理一个真正的单击事件或 mouseup 事件,然后直接从单击处理程序(http://jsfiddle.net/DLV2F/87/)触发文本输入焦点。

    <input>
    <p id="click">Click handler</p>
    <p id="click-timeout">Click handler setting timeout</p>
    <p id="mousedown">Mousedown handler</p>
    <p id="mousedown-timeout">Mousedown handler setting timeout</p>
    <p id="mouseup">Mouseup handler</p>
    <p id="mouseup-timeout">Mouseup handler setting timeout</p>
    <p id="extern-click-trigger">Clicking here will trigger click on the first 'Click Handler'</p>
    <p id="tap">Virtual 'TAP' handler</p>
    <p id="tap-triggering-click">Virtual 'TAP' handler triggering click on the first 'Click handler'</p>
    
    <script>
    function focus() {
        $('input').focus();
    }
    $(focus);
    $(function() {
        $(document.body).load(focus);
        $('#click').click(focus);
        $('#click-timeout').click(function() {
            setTimeout(focus);
        });
        $('#mousedown').mousedown(focus);
        $('#mousedown-timeout').mousedown(function() {
            setTimeout(focus);
        });
        $('#mouseup').mouseup(focus);
        $('#mouseup-timeout').mouseup(function() {
            setTimeout(focus);
        });
        $('#extern-click-trigger').click(function() {
            $('#click').click();
        });
        $('#tap').bind('tapone', function() {
            focus();
        });
        $('#tap-triggering-click').bind('tapone', function() {
            $('#click').click();
        });
    
    });
    </script
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-08
      • 2017-01-22
      • 2015-04-30
      • 2014-09-12
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多