zoukankan      html  css  js  c++  java
  • 微信小程序 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 {
         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 首次不正确

  • 相关阅读:
    dumpsys
    阿里云云效流水线体验
    停车入场城市排行榜1
    第三方企业号对接工作
    PHP搭建(windows64+apache2.4.7+mysql-5.6+php5.5)
    十大编程算法助程序员走上高手之路
    数据库的最简单实现
    JavaScript 开发的45个经典技巧
    常用meta整理
    Shell脚本编程初体验
  • 原文地址:https://www.cnblogs.com/microestc/p/11169191.html
Copyright © 2011-2022 走看看