• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序获取字符长度,超过显示点点点,后面更多,点击展开和收起. ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

之前写微信小程序的时候遇到的问题,功能很简单就是超过显示... 后面加展开, 点击展开展开内容,下面有一个收起功能,遇见的问题是获取不到元素信息,各种搜索,找开发文档等,最后完美解决.

先上代码:

 _getFields (id) {
      return new Promise((resolve,reject) => {
        wx.createSelectorQuery().in(this).selectAll(id).boundingClientRect().exec(function(res){
          if( res && res.length ){
            if( res[0] && res[0].length ){
              let w = res[0][0].width;
              resolve(w)
            }
          }else{
            reject()
          }
        })
      })
    }

我的组件是一个自定义组件,里面的id是动态的,我记得官方文档上没有in(this),导致获取不到元素的信息.

methods:{
    // 获取指定元素实际宽度
    _initData(){
      let dataInfo = Object.assign({},this.properties.item);
      this.setData({dataInfo},()=>{
        Promise.all([
          this._getFields(`#description-box-${obj.id}`),
          this._getFields(`#text-description-${obj.id}`)
        ]).then(res => {
          let parentWidth = res[0];
          let childWidth = res[1];
          if( (parentWidth - childWidth) < 40 ){
            this.setData({
              toggleParams: {
                toggleFlag: 1,
                toggleShow: true
              },
            })
          }else{
            this.setData({
              toggleParams: {
                toggleFlag: 0,
                toggleShow: false
              },
            })
          }
        })
      })
    }

最后直接调用就行了,然后去展示展开按钮,效果如下:

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap