# 评论页

# 技术点

自定义输入框 contenteditable 操作光标位置 resize事件监听

# 目录结构

└─ comoppnents
   └─ comment-page
      ├─ index                    # 评论半屏页面
      └─ components               # 评论组件
         ├─ comment-bar           # 评论底部 bar
         ├─ comment-editor        # 评论输入框
         ├─ comment-item          # 评论单条内容
         └─ comment-tool          # 评论举报/删除等操作

# 功能介绍

因为多种资源存在评论功能,如文章、影评、视频等,所以将该页面单独抽离出来作为一个公共页面。 注意,该评论页面为弹窗子页面,以实现用户返回操作时,只关闭评论的弹窗。

# 主要代码

<textarea 
  fixed 
  auto-height 
  disable-default-padding 
  show-confirm-bar="{{ false }}" 
  value="{{ content }}"
  bindinput="inputChange" 
  adjust-position="{{false}}" 
  class="comment-edit" 
  placeholder="爱笑的人运气不会太差~"
  placeholder-class="placeholder" 
  focus 
  confirm-hold 
  confirm-type="send" 
  hold-keyboard 
/>
data: {
  submitLoading: false,
  keyboradHeight: 0,
  hasChanged: false
},

ready() {
  // 键盘高度变化事件
  wx.onKeyboardHeightChange(({ height }) => {
    this.setData({
      keyboradHeight: height
    })

    // 由于当前页面的键盘首次抬起时,会触发一次0高度
    // 所以做一个开关控制一下是否为首次进入
    if (this.data.hasChanged && height === 0) {
      this.back();
    }

    if (height > 0) {
      this.data.hasChanged = true;
    }
  })
}
上次更新: 2022-10-25 9:05:36 ├F10: PM┤