위 챗 애플 릿 별 평가 효과 구현

본 논문 의 사례 는 위 챗 애플 릿 이 별 평 점 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
생각 은 매우 간단 하 다.작은 별 들 은 모두 독립 된 그림 으로 클릭 할 때 그림 의 경 로 를 바 꾸 면 된다.
저 는 배경 그림 으로 만 들 었 습 니 다.먼저 상자 에 배경 그림 을 회색 의 작은 별 로 설정 합 니 다.상 자 는 js 파일 의 stars 배열 에 따라 순환 되 었 습 니 다.flag 의 값 에 따라 회색 의 작은 별 인지 노란색 의 작은 별 인지 확인 하고 클릭 할 때 현재 이 상자 의 index 값 을 얻 습 니 다.그리고 stars 배열 의 색인 값 이 index 와 같은 모든 항목 의 flag 보다 작 으 면 됩 니 다.
물론 회색 과 노란색 의 작은 별 을 유형 명 으로 제어 할 수도 있 고 클릭 할 때 유형 명 을 조작 하 는 것 도 가능 하 다.
구현 코드 는 다음 과 같 습 니 다:

*.wxml  
<view class="container">
 <view class='stars'>
 <image src=''></image>
 <view class='content'>
 <view>  </view>
 <view>
 <view wx:for="{{stars}}" wx:key="" style='background:url("{{item.flag==1?item.bgImg:item.bgfImg}}") no-repeat top; background-size:100%;' data-index="{{index}}" bindtap='score'></view>
 </view>
 </view>
 </view>
 <view class='reviews'>
 <textarea placeholder='               ,            ~(   100   )'></textarea>
 </view>
</view>

*.wxss  
.stars{
 padding:85rpx 0 60rpx 273rpx;
 box-sizing: border-box;
 position: relative;
 border-bottom: 1rpx solid #ececec;
 background-color: #fff;
}
.stars image{
 width: 190rpx;
 height: 190rpx;
 border: 1rpx solid #000;
 position: absolute;
 top: 41rpx;
 left: 36rpx;
}
.stars .content view{
 font-size: 32rpx;
 color: #4a4a4a;
}
.stars .content>view:last-of-type{
 height: 40rpx;
 margin-top: 48rpx;
}
.stars .content>view:last-of-type view{
 float: left;
 width: 42rpx;
 height: 42rpx;
 margin-right: 25rpx;
 background-size: 100% 100%;
}

*.js  
 data: {
 stars:[
 {
 flag:1,
 bgImg: "/star.png",
 bgfImg:"/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 },
 {
 flag: 1,
 bgImg: "/star.png",
 bgfImg: "/f_star.png"
 }
 ]
 },
 score:function(e){
 var that=this;
 for(var i=0;i<that.data.stars.length;i++){
 var allItem = 'stars['+i+'].flag';
 that.setData({
 [allItem]: 1
 })
 }
 var index=e.currentTarget.dataset.index;
 for(var i=0;i<=index;i++){
 var item = 'stars['+i+'].flag';
 that.setData({
 [item]:2
 })
 }
 },
코드 분석:

효과 그림:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기