网络编程
位置:首页>> 网络编程>> JavaScript>> 微信小程序 textarea 层级过高问题简单解决方案

微信小程序 textarea 层级过高问题简单解决方案

作者:microestc  发布时间:2024-04-18 09:36:41 

标签:微信,小程序,textarea,层级

这篇文章主要介绍了微信小程序 textarea 层级过高问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

建立一个新的textarea 组件代替原生textarea ,废话不多说,上代码


<template>
 <view class="ui-textarea">
   <textarea class="textarea {{ hide? 'hidden':''}}" auto-height maxlength="{{maxlength}}" name="{{ name }}" value="{{ txt }}" placeholder="{{ placeholder }}" bindinput="onInput" bindblur="onBlur" focus="{{focus}}"></textarea>
   <view hidden="{{ hide == false }}" class="{{ txt === ''?'text placeholder':'text'}}" bindtap="onFocus">{{ txt ===''? placeholder:txt }}</view>
 </view>
</template>
<script>
export default {
 config: {
   usingComponents: {}
 },
 behaviors: [],
 properties: {
   placeholder: {
     type: String,
     value: ''
   },
   maxlength: {
     type: Number,
     value: 128
   },
   name: String,
   value: {
     type: String,
     value: ''
   }
 },
 data: {
   hide: true,
   txt: '',
   focus: false
 },
 ready() {
   if (this.data.value != '') {
     this.setData({ txt: this.data.value })
   }
 },
 methods: {
   onFocus() {
     this.setData({ hide: false, focus: true })
   },
   onInput(e) {
     this.setData({ txt: e.detail.value })
   },
   onBlur() {
     this.setData({ hide: true, focus: false })
   }
 }
}
</script>
<style lang="less">
.ui-textarea {
position: relative !important;

.textarea.hidden {
 display: block !important;
 position: absolute !important;
 left: -999px;
 right: -999px;
 top: 0;
}

.textarea {
 width: 100%;
 box-sizing: border-box;
}

.text {
 height: 100%;
 padding: 6px 5px;
 font-size: 14px;
}

.placeholder {
 color: #888;
}
}
</style>

Vue 代码,自己根据需求改一下 ,特别注意,不要用 wx;if 或者 hidden 属性 , wx:if 频繁渲染,虽然可以用,hidden 会出现 部分显示bug,[hidden] 会使auto-height 首次不正确

来源:https://www.cnblogs.com/microestc/p/11169191.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com