当屏幕键盘出现在手机中时,表单隐藏

时间:2016-05-12 16:26:02

标签: javascript css

这是jsfiddle链接https://jsfiddle.net/109qve4t/

这是移动网站设计的代码。我面临的问题是我的窗体在窗口上保持静态。但我想要的是当用户写入查询时窗体应该跳到窗口的顶部在"输入你的开始"城市文本框。我不想用jquery来完成它。

<html>
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
    img.bg {
        min-height: 100%;
        min-width: 1024px;

        width: 100%;
        height: auto;

        position: fixed;
        top: 0;
        left: 0;
    }

    @media screen and (max-width: 1024px){
        img.bg {
            left: 50%;
            margin-left: -512px; }
        #form_1 {
            width: 20%;
        }
    }

    #form_1 {     
        position: relative;
        border-radius: 15px;

        width: 80%;
        margin: 15% auto; 
        padding: 20px;
        background: white;
        -moz-box-shadow: 0 0 20px black;
        -webkit-box-shadow: 0 0 20px black; 
        box-shadow: 0 0 20px black;
        display: table;
        border :solid 2px  black;
        padding: 15px;
    }

    .row {
        display:table-row;
    }

    .row label {
        text-align: right;
    }
</style>
</head>
<body>

<div id="yt" >
    <img src="bg.jpg" class="bg">
    <form id="form_1" tabindex="0">
    <label>Enter Starting City</label>
    <div class="row">
    <input type="text" name="s_city"></br>
</div>
<div class="row">
    <label>Wait While The Cities Appear
    </label></br>
    <textarea rows="10" cols="30"></textarea></br>
    <div class="row">
</form>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

我不认为你可以在没有jquery或其他javascript的情况下做到这一点。主要原因是您必须检测子元素(输入)上的焦点/模糊,然后修改父元素(窗体)。 CSS规则无法更改父行为。

需要某种用户操作。使用jQuery的解决方案如下:

https://jsfiddle.net/6gbk76fx/4/

$(function () {
    $('form input, form textarea').on("focus", function (event) {
        $(event.target).closest('form').addClass('jump');
    });

  $('form input, form textarea').on("blur", function (event) {
        $(event.target).closest('form').removeClass('jump');
    });
});