小程序文本域展开收起

超出4行显示省略号和展开按钮,点击显示收起按钮,小于4行不显示按钮。

效果图

在这里插入图片描述在这里插入图片描述

wxml


        <view wx:if="{{user.description}}" class="bg">
            <view class="{{expend?'overflow4 textarea':'textarea'}}" id="desc">{{user.description}}</view>
            <view class="expend " bindtap="expend" wx:if="{{colNum>4}}">
                <view wx:if="{{expend}}">
                    展开<image src="https://static-1256912642.cos.ap-chengdu.myqcloud.com/pm2.0/card/Shape%20(1).png"></image>
                </view>
                <view wx:else>
                    收起<image src="https://static-1256912642.cos.ap-chengdu.myqcloud.com/pm2.0/card/Shape%20(1).png"
                             style="transform: rotate(180deg)"></image>
                </view>
            </view>
        </view>

wxss

.expend{
    color:#587FED;
    margin-top:10rpx;
    font-size:24rpx;
}
.expend image{
    width:16rpx;
    height:22rpx;
    margin-left:10rpx;
}
.overflow4{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden ;
    -webkit-line-clamp: 4;
    text-overflow: ellipsis;
}
.textarea{
     letter-spacing: 3rpx;
     font-size:24rpx;
     color:rgba(102,102,102,1);
     line-height:32rpx;
 }
.bg{
    background-color: #f3f3f3;
    margin:0 20%;
}

// pages/line/line.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    user:{
      description:"哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽"
     },
    expend:false,
    colNum:0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getLine()
  },
  getLine(){
    let query = wx.createSelectorQuery();//查询节点信息的对象
    query.select('#desc').boundingClientRect();//添加节点的布局位置的查询请求
    query.exec( (res)=> {//执行所有的请求。请求结果按请求次序构成数组,在callback的第一个参数中返回
      if(res[0]){
        let height = res[0].height;
        let colNum = height/16;      //16px为css里设置的view的line-height
        this.setData({
          colNum:colNum,
        })
        if(colNum>4)
          this.setData({
            expend: true,
          })
      }

    })
  },
  expend(){
    this.setData({
      expend:!this.data.expend
    })
  },

})

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是关于小程序文本域的一些基本介绍和用法。 文本域(textarea)是小程序中常用的一个组件,用于输入和展示多行文本。一般情况下,文本域可以通过设置宽度和高度、字体大小、字体颜色等样式属性来进行个性化设置。在小程序中,文本域的使用方式与HTML中的文本域类似,但也有一些不同之处。 下面是一个简单的文本域的示例代码: ```html <view class="container"> <textarea placeholder="请输入内容" bindinput="onInput"></textarea> </view> ``` 在上面的代码中,我们定义了一个文本域,它的placeholder属性设置为“请输入内容”,表示在文本域中没有输入时会显示该提示语。同时,我们还通过bindinput属性指定了一个事件处理函数“onInput”,该函数会在文本域的输入内容发生变化时被触发。 除了上述示例代码中的属性和事件外,文本域还有许多其他的属性和事件,如: - value:用于设置和获取文本域的值; - maxlength:用于设置文本域的最大输入长度; - focus:用于控制文本域是否自动获取焦点; - blur:用于当文本域失去焦点时触发的事件等。 在进行文本域的样式设置时,可以使用小程序提供的wxss样式语言进行设置,例如: ```css textarea { width: 100%; height: 200rpx; font-size: 28rpx; color: #333; border: 1rpx solid #ccc; padding: 10rpx; } ``` 上述代码中,我们设置了文本域的宽度为100%、高度为200rpx、字体大小为28rpx、字体颜色为#333、边框为1rpx的实线边框、内边距为10rpx。 希望以上内容能够帮助你了解小程序文本域的基本用法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值