在iOS7,chrome和safari中,在输入字段的焦点上,页面滚动。
如果用户点击它并且我希望滚动仍然有效,我希望该字段是聚焦的,但是在输入字段焦点上发生的默认滚动,我希望它停止。
我该怎么做?
以下是JS小提琴样本:http://jsfiddle.net/6HvUh/
代码:
$(window).on('scroll', function(){
$('input').animate({'top':100});
});
答案 0 :(得分:2)
iOS Safari会始终尝试将焦点输入置于可见屏幕中央。与iOS position: fixed
相结合,这可能会导致奇怪的效果。
如果可能,我的建议是不要使用position: fixed
。您可以这样更改页面:
absolute
(或其容器的位置)。添加一些CSS:
div.scrollable { 宽度:100%; 身高:100%; 溢出:自动; -webkit-overflow-scrolling:touch; }
html, body
{
width: 100%;
height: 100%;
overflow: hidden;
}
请注意,您的输入永远不会被键盘隐藏。如果您将输入放在页面底部附近,那么无论如何都会看到滚动。