我希望有一个(最好是使用jQuery)常规文本输入框,可以通过其右下角被点击和拖动,由用户调整大小(例如,像Chrome中的文本区域)。目前找不到任何已经实现这功能的jQuery插件。请问是否存在类似的东西或者如何轻松地实现它?
提前感谢您。
编辑:我希望它可以像Chrome中的文本区域一样可缩放...
我希望有一个(最好是使用jQuery)常规文本输入框,可以通过其右下角被点击和拖动,由用户调整大小(例如,像Chrome中的文本区域)。目前找不到任何已经实现这功能的jQuery插件。请问是否存在类似的东西或者如何轻松地实现它?
提前感谢您。
编辑:我希望它可以像Chrome中的文本区域一样可缩放...
你不需要使用jQuery来处理这个问题。你需要使用CSS。
#yourTextInput{
resize:both;
}
这将使你的文本输入框在右侧具有调整大小的选项。
在2016年,这变得有点复杂。您需要将<input>
包装在一个可调整大小的"inline-block"中:
.resizable-input {
/* make resizable */
overflow-x: hidden;
resize: horizontal;
display: inline-block;
/* no extra spaces */
padding: 0;
margin: 0;
white-space: nowrap;
/* default widths */
width: 10em;
min-width: 2em;
max-width: 30em;
}
/* let <input> assume the size of the wrapper */
.resizable-input > input {
width: 100%;
box-sizing: border-box;
margin: 0;
}
/* add a visible handle */
.resizable-input > span {
display: inline-block;
vertical-align: bottom;
margin-left: -16px;
width: 16px;
height: 16px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAJUlEQVR4AcXJRwEAIBAAIPuXxgiOW3xZYzi1Q3Nqh+bUDk1yD9sQaUG/4ehuEAAAAABJRU5ErkJggg==");
cursor: ew-resize;
}
<span class="resizable-input"><input type="text" /><span></span></span>
Hello <span class="resizable-input"><input type="text" /><span> World
,它不会按照我想要的方式运行(至少在Firefox中不会)。具体来说,我只能看到“World”中的“W”,出现在拖动图像中。调整大小是否可能“推”和“拉”其后面的内联元素? - alex.jordan<span>
应该是</span>
。 - Kijewski::after
代替第二个。简而言之:.resizable-input { ... }
.resizable-input > input { ... }
.resizable-input::after { ... }
/* the last one used to be .resizable-input > span { ... } */
只需使用HTML:
<span class="resizeable-input"><input type="text"/></span>
在此处查看完整代码并查看其运行情况: https://jsfiddle.net/ElMoonLite/qh703tbe/
还添加了input { padding-right: 0.5em; }
,这样即使输入框中充满文本,您仍然可以调整其大小。
在2019年的Chrome中似乎仍然有效。
在Edge中,调整大小似乎无法正常工作(但除此之外看起来还不错(优雅降级))。尚未测试其他浏览器。
<input type="text" />
可以调整大小吗?还是你想要在所有浏览器中复制Chrome和Firefox的<textarea>
行为? - Interrobang<input type="text" />
元素的大小是没有意义的,你不会像魔术一样将其转换为文本区域,它仍然是单行元素。除非你想要水平扩展,在某些情况下可能有用。 - ChrisR