入力 (タイプ テキスト) ボックスを作成し、非常に簡単に自動サイズ変更しました。ただし、修正できないように見えるいくつかの不具合があります。
- 入力を開始すると、ボックスが少し縮小します
- バックスペース (または方向矢印) を押すと、ボックスが最初に拡大し、入力を続けると縮小します。
これが私のコードです:
function Expander() {
this.start = function () {
$("#inputbox").keydown(function(e) {
this.style.width = 0;
var newWidth = this.scrollWidth + 10;
if( this.scrollWidth >= this.clientWidth )
newWidth += 10;
this.style.width = newWidth + 'px';
});
}
}
$(function() {
window.app = new Expander();
window.app.start();
});
input {
margin-left:3em;
min-width:100px;
max-width:600px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<meta charset="UTF-8">
<body>
<div id="wrap">
<input type="text" id="inputbox" name="input" placeholder="I want this to resize smoothly." width="100px"/>
</div>
<div id="counter"></div>
</body>