定制高度随输入内容变化的输入框

需求:定制高度随输入内容变化的输入框;没有内容时单行高度36px,内容少于4行时随输入内容的增加或者减少变换输入框的高度,大于4行后高度不变,内容上下滚动;

难点:没有内容时的高度和内容文字减少时行高变小;

交互

 

解决方案:hostInput作为高度随输入内容变化的输入框,新建一个shadowbox,高度为0,宽度等于hostInput的宽度,超出隐藏,在shadowbox里放一个shadowInput的块,块的文字内容和输入框的文字内容和样式都一致,然后取shadowInput的高度作为hostInput的高度进行计算。

 

HTML:

 

CSS:

 

JS:

 

=============================分割线==========================================

使用contenteditable属性:<div contenteditable="true"></div>

可能的问题:ios中无法输入

原因:使用了fastclick.js库,导致这个可编辑的div被点击无法轻松的唤起输入法,点击数次才能成功一次。

解决方案

 i:  添加样式-webkit-user-select:text

 ii:

  (1)给div加上needsclick的class: <div contenteditable="true" class="needsclick"></div>

  (2)或者修改fastclick的源码:

             

 

转载于:https://www.cnblogs.com/vicky24k/p/11464909.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值