微信小程序自动打字或者自动输入

496 阅读1分钟

背景

普通网页可以实现自动打字,实现方式是通过JavaScript的监听事件addEventListener给指定元素输入文字,微信小程序不支持这样做,有什么办法实现同样的效果?

思路

用this.setData和延迟操作可以实现

实现

页面内容:

<view>
    <textarea cols="30" rows="10" value="{{value}}">
    </textarea>
    <button bindtap="input">自动输入</button>
</view>

逻辑内容:

Page({
  data: {
    content: '毛泽东的名作《沁园春·雪》,北国风光,千里冰封,万里雪飘。望长城内外,惟余莽莽;大河上下,顿失滔滔。山舞银蛇,原驰蜡象,欲与天公试比高。须晴日,看红装素裹,分外妖娆。江山如此多娇,引无数英雄竞折腰。惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。一代天骄,成吉思汗,只识弯弓射大雕。俱往矣,数风流人物,还看今朝。',
    value: '',
  },
  // 事件处理函数
  input() {
    let strArr = Array.from(this.data.content)
    for (let i = 0; i < strArr.length; i++) {
      setTimeout(() => {
        this.setData({
          value: this.data.value + strArr[i]
        })
        console.log(strArr[i]);
      }, 100 * i)
    }
  }
})

总结

这样方式简单粗暴吧,有更好的实现方式可以在评论区说明一下,谢谢评论!