小程序五星好评

首先您需要两张小星星的图片
在这里插入图片描述
在这里插入图片描述

.wxml文件

<view class="star">
  <view class="star_center">
    <view class="star_box">
      <view class="right">
        <view bindtap="starTap" data-index="{{index}}" class="star" wx:for="{{userStars}}" wx:key="index">
          <image src="{{item}}"></image>
        </view>
      </view>
    </view>
    <view class="star_font">您觉得课程不错的话请打五星哦~</view>
  </view>
</view>

//可以在框里面写字的那种
<view class="evaluate">
  <view class="evaluate_center">
    <textarea placeholder="期待您的评价,会对其他家长帮助很大哦,(至少要写八个字哦~)" name="bindTextAreaBlur" bindblur="getText" bindinput="getValueLength" show-confirm-bar='true' value="{{editText}}" bindconfirm="getText" maxlength="{{max}}" minlength="{{min}}" auto-focus>
      <text class="minWord">{{minWord}}</text>
    </textarea>
    <view class="currentWordNumber">{{currentWordNumber|0}}/{{max}}</view>
  </view>
</view>

.wxss文件

.star_center {
  width: 687rpx;
  height: 350rpx;
  margin: auto;
}

.star_box {
  width: 500rpx;
  height: 100rpx;
  margin: auto;
  margin-top: 30rpx;
}

.star_font {
  width: 500rpx;
  height: 50rpx;
  margin: auto;
  font-size: 24rpx;
  line-height: 50rpx;
  color: #727272;
  text-align: center;
}

.right .star {
  float: left;
  width: 95rpx;
  height: 60rpx;
  text-align: center;
  line-height: drpx;
  padding: 20rpx 2rpx;
}

.star image {
  width: 55rpx;
  height: 55rpx;
}




//可以在框里面写字的那种
.evaluate {
  width: 100%;
  height: 450rpx;
}

.evaluate_center {
  width: 96%;
  height: 450rpx;
  margin: auto;
  padding: 30rpx;
  border-top: 1rpx solid #eee;
  border-bottom: 1rpx solid #eee;
}
 
.evaluate_center textarea {
  min-height: 400rpx;
  max-height: 400rpx;
  line-height: 35px;
  font-size: 26rpx;
  width: 100%;
  height: 100%;

  
}
 
.minWord {
  color: red;
   font-size: 26rpx;
  position: absolute;
  top: 30px;
}
 
.currentWordNumber {
  height: 35px;
  line-height: 35px;
  font-size: 26rpx;
  float: right;
  margin-right: 15px;
  color: rgba(136, 136, 136, 1);
  margin-bottom: 10px;
}

.wxml文件

data: {

    userStars: [
      '../../../image/xingxing_s.png',
      '../../../image/xingxing_k.png',
      '../../../image/xingxing_k.png',
      '../../../image/xingxing_k.png',
      '../../../image/xingxing_k.png'
    ],
    max: 300, //2限制最大输入字符数
    min: 8,  //2限制最小输入字符数
    minWord: ''//2提示语句
  },
  //1 星星点击事件
starTap: function(e){
  var index = e.currentTarget.dataset.index; // 获取当前点击的是第几颗星星
  var tempUserStars = this.data.userStars; // 暂存星星数组
  var len = tempUserStars.length; // 获取星星数组的长度
  for(var i = 0; i < len; i ++){
    if(i <= index){ // 小于等于index的是满心
      tempUserStars[i] = '../../../image/xingxing_s.png'
    }else{ // 其他是空心
      tempUserStars[i] = '../../../image/xingxing_k.png'
    }
  }
  // 重新赋值就可以显示了
  this.setData({
      userStars: tempUserStars
  })
},

/****2限制字数与计算 */
  getValueLength: function (e) {
    let value = e.detail.value
    let len = parseInt(value.length)
    //最少字数限制
    if (len <= this.data.min)
      this.setData({
        minWord: "至少填写8个字哦~"
      })
    else if (len > this.data.min)
      this.setData({
        minWord: " "
      })
    //最多字数限制
    if (len > 300) return;
    this.setData({
      currentWordNumber: len //当前字数 
    })
  },

成果展示

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值