美文网首页我爱编程
这个五星评分,半颗星星怎么做功能我们应该怎么编写呢?

这个五星评分,半颗星星怎么做功能我们应该怎么编写呢?

作者: 极客小寨 | 来源:发表于2018-04-16 16:50 被阅读26次
    starBanner.png

    概述

    我们在学习微信小程序或者做项目时,应该会遇到五星评分效果情况,那么这个五星评分,半颗星星怎么做功能我们应该怎么编写呢?

    今天我们说下微信小程序五星评分,半颗星星效果的实现,今天分享这样的小教程。希望对大家有所帮助。

    不多说了,二当家要上图啦!

    快去拿个小板凳,坐等跟多更新

    wxml

    <!--index.wxml-->
    <block wx:for="{{stars}}" wx:key="">
      <image class="star-image" style="left: {{item*150}}rpx" src="{{key > item ?(key-item == 0.5?halfSrc:selectedSrc) : normalSrc}}">
        <view class="item" style="left:0rpx" data-key="{{item+0.5}}" bindtap="selectLeft"></view>
        <view class="item" style="left:75rpx" data-key="{{item+1}}" bindtap="selectRight"></view>
      </image>
    </block>
    

    js

    //index.js
    //获取应用实例
    var app = getApp()
    Page({
      data: {
        stars: [0, 1, 2, 3, 4],
        normalSrc: '../../images/normal.png',
        selectedSrc: '../../images/selected.png',
        halfSrc:'../../images/half.png',
        key: 0,//评分
      },
      onLoad: function () {
      },
      //点击右边,半颗星
      selectLeft: function (e) {
        var key = e.currentTarget.dataset.key
         if (this.data.key == 0.5 && e.currentTarget.dataset.key == 0.5) {
        //只有一颗星的时候,再次点击,变为0颗
           key = 0;
        }
        console.log("得" + key + "分")
        this.setData({
          key: key
        })
      },
      //点击左边,整颗星
      selectRight: function (e) {
        var key = e.currentTarget.dataset.key
        console.log("得" + key + "分")
        this.setData({
          key: key
        }) 
      }
    })
    
    

    css

    
    /**index.wxss**/
    .star-image{
      position: absolute;
      top: 50rpx;
      width: 150rpx;
      height: 150rpx;
      src: "../../images/normal.png";
    }
    .item{
      position: absolute;
      top: 50rpx;
      width: 75rpx;
      height: 150rpx;
    }
    
    

    以上代码为效果为 图二,更多本人微信geekxz

    相关文章

      网友评论

        本文标题:这个五星评分,半颗星星怎么做功能我们应该怎么编写呢?

        本文链接:https://www.haomeiwen.com/subject/fjpekftx.html