为什么在tizen中选择输入时div会滚动?

时间:2016-04-19 04:41:51

标签: javascript jquery html tizen-web-app

我有一个tizen Web应用程序,它有多个输入字段。当用户点击div滚动到底部并且输入抽屉出现的任何输入时。因此用户无法看到输入字段。我该如何防止这种情况?

我试过用这个:

$('input').bind('focusin focus', function(e){
    e.preventDefault();
});

它没有用。

编辑: 这是一个示例部分:

<div class="ui-page" id="">
    <div class="ui-header">
        <h1 class="ui-title">Header</h1>
    </div>

    <div class="ui-content" id="history">
        <ul data-role="listview">
            <li><span>Input 1:</span>
            </li>
            <li>
                <input type="tel" id="input1" style="background-color: #d1d1d1;">
            </li>
            <li><span>input 2:</span>
            </li>
            <li>
                <input type="number" id="input2" style="background-color: #d1d1d1;">
            </li>

            <li><span>Input 3</span>
            </li>
            <li>
                <input type="number" id="input3" style="background-color: #d1d1d1;">
            </li>
        </ul>

        <input class="ui-btn" type="button" onclick="done_click()" value="Done">
    </div>

</div>

1 个答案:

答案 0 :(得分:1)

试试这个

以下代码将自动滚动到焦点上的输入。

$('input').bind('focusin focus', function(e){
    var $input = $(this);
    $('html,body').stop().animate({ scrollTop: $input.offset().top } , '500', 'swing');
});

我甚至会设置offset - 25,以提供良好的可见性,并在顶部创建一些空间。你可以稍后调整一下。

如果这不起作用,请尝试设置超时:例如。

$('input').bind('focusin focus', function(e){
    var $input = $(this);
    setTimeout(function(){
        $('html,body').stop().animate({ scrollTop: $input.offset().top } , '500', 'swing');
    }, 345);
});