收藏
回答

selectorQuery.selectAll获取宽度数值不对

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug selectorQuery.selectAll 工具 6.6.6 1.9.94


- 需求的场景描述(希望解决的问题)

需求是在做一个横向的scroll-view,里面的每个block的内容是长度不一的文字,内容通过接口获得。


为了实时计算scroll-view的宽度,在调用完接口后,用setData设置列表数据,然后在setData中的callback中调用selectorQuery.selectAll获取列表的每个元素block的宽度(内容是长度不一的文字),但是获得的数据的width一直是39,也没有根据内容长短变化。所以scroll-view计算所得的长度不够而显示不全。


- 希望提供的能力

希望请教一下如何获得实时的元素的宽度

最后一次编辑于  2018-04-16
回答关注问题邀请回答
收藏

6 个回答

  • LastLeaf
    LastLeaf
    2018-04-17

    如果宽度会受setData的影响,在旧版本基础上你需要将createSelectorQuery放在setData回调里面(第二个参数)。

    2018-04-17
    有用
    回复 3
    • diego
      diego
      2019-05-09

      我也遇到这个问题,在实现走马灯效果的时候,如果一个元素内文字很长,并且超出屏幕宽度,如果文本都是英文就能获得实际(长)宽度,如果文本有中文,获得的宽度就是父元素盒子的宽度(短)


      2019-05-09
      回复
    • LastLeaf
      LastLeaf
      2019-05-09回复diego

      看起来并不是同一个问题。看看你的中文是不是换行了?

      2019-05-09
      回复
    • diego
      diego
      2019-05-10回复LastLeaf

      确实是换行了  嘻嘻

      2019-05-10
      回复
  • LastLeaf
    LastLeaf
    2018-04-17

    请检查一下你的 css 中的布局属性设置。

    2018-04-17
    有用
    回复
  • LastLeaf
    LastLeaf
    2018-04-17

    你好,css中,block是块级元素,占满整行。

    2018-04-17
    有用
    回复
  • _斌
    _斌
    2018-04-17

    已经将元素设为 inline-block或inline,但还是不行。问题好像还是宽度没有更新,因为我获取完数据后,在另外一个button的点击事件去获取这些block的宽度,这时就正确了,是block的实际宽度。

    2018-04-17
    有用
    回复
  • 梁嘉财、
    梁嘉财、
    2018-04-17

    那如果是高度的话怎么解决

    2018-04-17
    有用
    回复
  • 梁嘉财、
    梁嘉财、
    2018-04-16

    同样的问题求解答

    2018-04-16
    有用
    回复
登录 后发表内容