HTML :blur 将固定项目弄错[重复]

Posted

技术标签:

【中文标题】HTML :blur 将固定项目弄错[重复]【英文标题】:HTML :blur knocking fixed items out of place [duplicate] 【发布时间】:2013-02-17 23:38:10 【问题描述】:

我有一个固定的元素,它应该位于屏幕的中心。我里面也有输入元素。正如它应该的那样,当输入被关注时,带有固定元素的整个页面会移动。

但是,如果用户点击“Go”键或我创建的隐藏整个固定元素并模糊输入的按钮,下次我尝试显示固定元素时,它仍然不合适(页面恢复正常)。它显示从屏幕底部滑出一半(即使没有输入焦点且键盘已按下)。

任何帮助将不胜感激。我一直在为此烦恼。这出现在 PhoneGap 项目中,但我已使用通过 Mobile Safari 查看的标准网站复制了该问题。

这是我的一些代码:

<!--(html)-->

<div class="smooth-button" onclick="show()">Show</div>

<div id="popin">
<input type="text" placeholder="Example!" />
<div class="smooth-button" onclick="save()">Save</div>
</div>

... 


/* (CSS) */

#popin 
    position: fixed;
    left: 50%;
    top: 50%;
    height: 400px;
    width: 300px;
    margin-top: -200px;  /*keeps it perfectly centered*/
    margin-left: -150px; /*keeps it perfectly centered*/
 

#smooth-button 
    /* make the div look like a cool button */


...

// (javascript)

function show() 
    $("#popin").css('display', 'block');


function save() 
    //code to save text
    $("#popin").css('display', 'none');

【问题讨论】:

这是 Mobile Safari 还是其他地方的问题? 对不起。添加了详细信息。谢谢 你能发布你的代码吗? 【参考方案1】:

右侧边栏中的“相关”链接之一将我带到此页面:

ios 5 fixed positioning and virtual keyboard

我只是稍微更改了答案,并且效果很好。现在,调整 body 的大小,然后在输入模糊后立即将其向后移动,会更新固定元素的位置。

$("input, textarea").live("blur", function(e) 
    setTimeout(function() 
        $("body").css("height", "+=1").css("height", "-=1");
    , 0);
);

【讨论】:

以上是关于HTML :blur 将固定项目弄错[重复]的主要内容,如果未能解决你的问题,请参考以下文章

偏移html锚以调整固定标题[重复]

偏移html锚以调整固定标题[重复]

:CSS中的NOT选择器在我的情况下不起作用[重复]

在 Bamboo 中,如何将组件库存储库拉到固定位置以避免每个分支重复?

第31章 项目实战-PC端固定布局6

将 3 个值编码为 [0,1,-1] [重复]