收藏
回答

横向scroll-view输入字符串超出宽度如何自动滚动到最右边?

需求:用户在横向scroll-view中输入字符串(字符串从右向左),当超出宽度时,自动向左滚动,每输入一个字符都滚动到最右侧,使最新的字符显示出来。简单说就是使字符串从右向左输入。


问题:我的方案是设置scroll-left属性,在按键监听事件最后将值设置成9999,这样虽然实现了需求,但是反应很慢,每次按键差不多1少才显示上去,如果输入快点就卡死没反应了。

思考:这种方案肯定不完美,因为要频繁触发滚动事件,应该很消耗资源,但是又没想到更好的方案。求大神解决,感激不尽

     


回答关注问题邀请回答
收藏

3 个回答

  • alipay
    alipay
    2019-08-26

    使用input不能解决吗?为啥使用scrollview呀

    2019-08-26
    赞同 1
    回复 3
    • phoenixor
      phoenixor
      2019-08-26
      input我也度过,使用手机虚拟键盘输入是可以达到我的需求的,但是我的小程序是通过自定义按钮输入的,这样input无法自动滚动,你可以试试
      2019-08-26
      回复
    • alipay
      alipay
      2019-08-27回复phoenixor

      试试这样子

      测试代码

      2019-08-27
      回复
    • phoenixor
      phoenixor
      2019-08-27回复alipay
      首先感谢你提供的代码,但是效果不是我要的。我需要从右向左输入,你是相反的,另外如果连续快速输入,你的滚动跟不上,跟我现在的情况一样,总是感觉慢半拍
      2019-08-27
      回复
  • 创造之
    创造之
    2019-08-27

    这个需求类似于聊天窗口的信息展示,永远在底部,你这是永远在右侧,有一个巧妙的方法,就是布局的时候设置flex的row为反向的

    flex-direction: row-reverse

    然后再setData追加数据的时候不要想尾部添加,而是向头部添加,这样就起到负负得正的效果,数据追加要以数组形式

    2019-08-27
    赞同
    回复 1
    • phoenixor
      phoenixor
      2019-08-27
      你这个方案挺新颖啊,我怎么没想到,今晚试试先
      2019-08-27
      回复
  • 云袋科技
    云袋科技
    2019-08-25

    建议提供下代码片段 看看

    2019-08-25
    赞同
    回复 1
    • phoenixor
      phoenixor
      2019-08-25
      js代码吗?就是在按键监听器最后使用this.setData给scroll-top属性赋值9999,每次按键都向右滚动到头
      2019-08-25
      回复
登录 后发表内容
问题标签