界面常见的交互反馈

触摸反馈

小程序的view容器组件和button组件提供了hover-class属性,触摸时会往该组件加上对应的class改变组件的样式

<button hover-class="hover">点击button</button>
<button hover-class="hover">点击view</button>

 

.hover{
  background-color: gray;
}

 

有时在点击button按钮处理更耗时的操作时,使用button组件的loading属性,在按钮的文字前边出现一个Loading,让用户明确的感觉到,这个操作会比较耗时,需要等待一小段时间。

<button loading="{{loading}}" bindtap="tap">点击</button>

  

data: {
    loading:false,
},

tap:function(){
    //把按钮的 loading 状态显示出来
    this.setData({
      loading:true
    })
    //接着做耗时的操作
    /*......*/
},

 

Toast和模态对话框

在完成某个操作成功之后,我们希望告诉用户这次操作成功并且不打断用户接下来的操作。弹出式提示Toast就是用在这样的场景上,Toast提示默认1.5秒后自动消失

<button bindtap="tap">发送</button>



tap:function(){
    wx.showToast({
      title: '已发送',
      icon:'success',
      duration:1500,
    })
  },

 

注意,我们不应该把Toast用于错误提示,因为错误提示需要明确告知用户具体原因,因此不适合用这种一闪而过的Toast弹出式提示。一般需要用户明确知晓操作结果状态的话,会使用模态对话框来提示,同时附带下一步操作的指引。

<button bindtap="tap">删除</button>



 tap:function(){
    wx.showModal({
      title: '',
      content: '是否确认删除',
      success:function(res){
        if(res.confirm){
          console.log('用户点击确定')
        } 
        else if(res.cancel){
          console.log('用户点击取消')
        }
      }
    })
  },

 

界面滚动

为了让用户可以快速刷新当前界面的信息,一般在小程序里会通过下拉整个界面这个操作来触发,此时age构造器的onPullDownRefresh回调会被触发,此时开发者重新拉取新数据进行渲染

//page.json

{"enablePullDownRefresh": true }



//page.js

Page({

  onPullDownRefresh: function() {

    // 用户触发了下拉刷新操作

    // 拉取新数据重新渲染界面

    // wx.stopPullDownRefresh() // 可以停止当前页面的下拉刷新。

  }

})

上拉触底

//page.json

// 界面的下方距离页面底部距离小于onReachBottomDistance像素时触发onReachBottom回调

{"onReachBottomDistance": 100 }



//page.js

Page({

  onReachBottom: function() {

    // 当界面的下方距离页面底部距离小于100像素时触发回调

  }

})

  

 

posted @ 2020-03-25 15:12  shanlu  阅读(559)  评论(0编辑  收藏  举报