最近的一个项目是微信小程序,这个textarea真的是让人很难受啊,我先说一下我遇得到的坑:
1、在swiper里面使用了(我知道不建议用,但是没办法.....就是这种需求没办法),然后在两个swiper-item中放着两个textarea,这还只是测试数据,真的数据会更多,但是只有一个生效了,只有第一个生效了,第二个textarea开始,可以触发点击事件,但是不能弹出手机上的键盘了,然后我就放弃了微信自己的这个原生组件textarea(真的搞不了了),换了一个UI库里的textarea,是vant的小程序组件里的<van-fild type='textarea'></van-fild>,这样就实际的解决了我的第一个问题。
2、这个问题是很多人都遇到的问题,就是在滚动的时候,无论是swiper还是scroll滚动的时候,textarea里面的文字,无论是你输入的内容还是placeholder属性定义的值,都会出现卡顿,也就是页面滚动的时候,文字不跟着滚动,在原地不动,等滚动结束之后才消失,这样用户体验极差,查了各种方法,发现也没什么简单的方法解决,最后就是使用了替换
原理比较简单,在这textarea标签的后面有一个和他长的一样的view标签或者text标签,然后当textarea失焦的时候,切换标签,让textarea消失,让另一个view或者text标签显示,这样就可以解决这个问题了,当点击view或者text标签的时候,再切换回textarea。
我是通过控制每一项里面的showTextArea这个属性来控制显示的,wx:if 和 wx:else就可以做到,主要是要让textarea中输入的值 能在view或者text中显示才行。