[英]Expanding/Contracting Textarea on Typing
我希望有一个注释字段,当用户单击它时它将增长为显示所有文本,然后在用户单击文本区域之外时缩小(隐藏无法显示的文本)。 用户应该能够输入文本并修改他们看到的内容。
我假设textarea是必经之路,因为输入没有多行功能。 但是,我对如何实现这一点有些困惑。 似乎所有内容都只是调整了textarea的大小以适合文本,但在用户完成输入后不会缩小。
有人可以帮我指出正确的方向吗?
谢谢!
用户单击后,可以使用:focus
和:active
状态更改文本框。 就像是:
textarea{
width: 200px;
height: 200px;
resize: none;
}
textarea:focus,
textarea:active{
width: 400px;
height: 400px;
}
用户单击该空间后,文本框将扩展到新尺寸。 如果您熟悉添加悬停状态,它们的工作方式与:hover
非常相似。
jsbin中的演示: http ://jsbin.com/culil/1/
1:您可以将其作为CSS类添加到网站的样式表中:
CSS:
.parentcontainer > textarea:focus, .parentcontainer > textarea:active { width: 400px; height: 400px; }
这是最佳实践,因为它将样式(应为CSS)和添加交互性(应为JavaScript)的关注点分开了。
2:您可以在使用javascript追加元素之前添加类:
CSS:
$(function(){
var textarea = $(".parentDiv").append("<textarea></textarea>");
$("textarea").addClass("my-textarea-class");
});
JS:
$(function(){ var textarea = $(".parentDiv").append("<textarea></textarea>"); $("textarea").addClass("my-textarea-class"); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.