禁用输入字段中的滚动

时间:2015-11-03 11:43:08

标签: javascript html css input scroll

我有一个带有背景图像的输入字段,用于分隔方框中的字母。

当我到达输入结尾时出现问题:由于光标位置放在最后一个字母后面,输入视图向下滚动。

The problem

如何避免视图滚动输入?

我尝试添加“overflow:hidden”并设置“maxlength”,问题仍然存在。

编辑:a simple demonstration(我的目标是在输入第4个字母时避免“移动效果”)

2 个答案:

答案 0 :(得分:0)

我看到了两个解决方案:

CSS解决方案

就像在评论中所说的那样,你可以略微增加你的输入,以防止这种“跳跃”行为 喜欢:width : 202px

fiddlejs

JavaScript解决方案

如果您不能/不想更改输入的宽度,可以阻止按键事件,然后检查输入值的长度。如果小于4则添加它,否则什么都不做。

Jquery方式:

var t = $('#input-form');
t.keypress( function(event){
    //Prevent the value to be added
    event.preventDefault();
    //Regex that you can change for whatever you allow in the input (here any word character --> alphanumeric & underscore)
    var reg = /\w/g;
    //retreive the key pressed
    var inputChar = String.fromCharCode(event.which);
    //retreive the input's value length
    var inputLength = t.val().length;

    if ( reg.test(inputChar) && (inputLength < 4) ) {
        //if input length < 4, add the value
        t.val(t.val() + inputChar);
    }else{
        //else do nothing
        return;
    }
});

fiddlejs

纯JavaScript:

var t = document.getElementById('input-form');

t.addEventListener('keypress', function(event){
    //Prevent the value to be added
    event.preventDefault();
    //Regex that you can change for whatever you allow in the input (here any word character --> alphanumeric & underscore)
    var reg = /\w/g;
    //retreive the input's value length
    var inputChar = String.fromCharCode(event.which);
    //retreive the input's value length
    var inputLength = t.value.length;
    if ( reg.test(inputChar) && (inputLength < 4) ) {
        //if input length < 4, add the value
        t.value = t.value + inputChar;
    }else{
        //else do nothing
        return;
    }
});

fiddlejs

答案 1 :(得分:0)

我在CSS代码中对您的字段宽度做了一些小改动,见下文:

input {
width: 205px;
height: 50px;
font-size: 30px;
font-family: "Courier", monospace;
letter-spacing: 28px;
text-indent: 18px;
position: fixed;
padding: 0;
margin: 0;
white-space: nowrap;
overflow: hidden;

}

现在尝试输入内容,并留意第四个角色。

希望这有帮助。

苏海尔。