欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序動(dòng)態(tài)評(píng)分展示/五角星展示/半顆星展示/自定義長(zhǎng)度展示 ... - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >

微信小程序動(dòng)態(tài)評(píng)分展示/五角星展示/半顆星展示/自定義長(zhǎng)度展示 ...

發(fā)表時(shí)間:2021-1-11

發(fā)布人:葵宇科技

瀏覽次數(shù):82

一、前言

項(xiàng)目中遇到的評(píng)分相關(guān)的需求其實(shí)還挺多。之前也寫過(guò)網(wǎng)頁(yè)中關(guān)于評(píng)分功能實(shí)現(xiàn)的文檔。這次,是基于微信小程序開發(fā)而提煉出一個(gè)簡(jiǎn)單方便使用的方法,網(wǎng)頁(yè)開發(fā)中同樣可用。這次使用的還是字體,主要是字體這個(gè)比較通用,顏色,大小都可以自己定義。當(dāng)然了,來(lái)的最快的其實(shí)是用圖片代替。

二、微信小程序中評(píng)分功能實(shí)現(xiàn)

1.css文件中引入字體文件。也可以點(diǎn)此下載字體文件  

@font-face {  
  font-family: 'FontAwesome';  
  src: url('https://netdna.bootstrapcdn.com/font-awesome/3.2.1/font/fontawesome-webfont.woff?v=3.2.1') format('woff'); 
}

2.根據(jù)自己項(xiàng)目的需求寫出五角星的樣式。參考下面

復(fù)制代碼
.star{margin-right:10rpx;}/*五角星之間的間距*/
/*五角星*/
.star .icon:before {content: '\f005'; font-family: FontAwesome; position: absolute;left: 0;top: 0;display: block;  overflow: hidden;}
.star .icon {display: block; font-size: 21px; text-align: center; width: 38rpx;height: 56rpx;line-height: 56rpx;position: relative;white-space: pre;}
/*灰色五角星*/
.star .icon_gray{color:#aaa}
/*黃色五角星*/
.star .icon_yellow:before {color: #F63;}
復(fù)制代碼

三、靜態(tài)實(shí)現(xiàn)五角星評(píng)分

1.如果是靜態(tài)實(shí)現(xiàn),可以直接設(shè)置寬度來(lái)實(shí)現(xiàn)評(píng)分效果,直接定義需要變色的五角形的比例。如果是顆星可以直接定義偽類元素寬度是50%;如果是1/3顆星可以定義寬度是33%;同樣的,如果是2/3顆星星,直接定義寬度為66%。如下

/*自定義長(zhǎng)度的黃色五角星*/
.half_star .icon_yellow:before {width: 50%;} 

2.html的代碼如下

復(fù)制代碼
  <view >
        <view style="font-size:12px;color:#aaa;text-align:center;margin-top:5px;">靜態(tài)評(píng)價(jià)星級(jí)</view>
        <view style="font-size:32px;color:#f63;text-align:center;margin-top:5px;">4.50</view>
        <view style="width:105px;margin:0 auto">
            <view style="display:flex;">        
                <view class="star"><view class="icon icon_yellow"></view></view>
                <view class="star"><view class="icon icon_yellow"></view></view>
                <view class="star"><view class="icon icon_yellow"></view></view>
                <view class="star"><view class="icon icon_yellow"></view></view>
                <view class="star half_star"><view class="icon icon_gray"><view class="icon icon_yellow"></view></view></view>
            </view>        
        </view>            
    </view>  
復(fù)制代碼

3.實(shí)現(xiàn)效果如下圖

四、動(dòng)態(tài)實(shí)現(xiàn)評(píng)價(jià)打分效果

1.樣式同(二、微信小程序中評(píng)分功能實(shí)現(xiàn))上。只是定義寬度的地方是動(dòng)態(tài)賦值的。

2.定義需要展示的初始屬性值。分別是要展示的黃色五角星,灰色五角星,以及那顆需要打分的的黃色五角星

復(fù)制代碼
Page({
  /**
   * 頁(yè)面的初始數(shù)據(jù)
   */
  data: {    
    yellow_star:0,//黃色五角星,默認(rèn)一開始是黃色星星0分
    gray_star:5,//灰色五角星 灰色星星是5顆 表示是5分
    star_per:0,//自定義長(zhǎng)度黃色五角星  一開始需要打的是0分
  }
})
復(fù)制代碼

3.根據(jù)返回的結(jié)果改變初始化的數(shù)據(jù) ,比如,后臺(tái)返回的評(píng)分是3.62

復(fù)制代碼
var star="3.62";//后臺(tái)獲取的評(píng)分
var yellow_star=parseInt(star);//需要展示的整個(gè)黃色5角星,3.62分的時(shí)候需要展示3顆整個(gè)的黃色五角星。
var star_per=parseFloat(star-yellow_star)*100;//3.62顆評(píng)價(jià)分-3顆整個(gè)黃色星,是0.62的占比,先將它*100。這樣賦值的時(shí)候比較方便。也就是一顆灰色的星星中展示出62%的黃色部位。
var gray_star=parseInt(5-star);//需要展示的灰色星星,正常是5-3.62=1.38顆,0.38顆已經(jīng)是在百分比中了。所以此時(shí)最后需要展示的是1整個(gè)灰色五角星
this.setData({    
    star:star,  //評(píng)分?jǐn)?shù)       
    yellow_star:yellow_star,//整個(gè)黃色五角星的個(gè)數(shù)
    star_per:star_per,//一顆灰色五角星中黃色五角星的占比
    gray_star:gray_star,//整個(gè)灰色五角星的數(shù)量
})
復(fù)制代碼

4.最后一步就是頁(yè)面中如何渲染的問(wèn)題了。由于微信小程序中無(wú)法實(shí)現(xiàn)動(dòng)態(tài)修改偽類元素的樣式值【可能是我不會(huì),會(huì)的同學(xué)可以指點(diǎn)一下】,所以,那顆占百分比的黃色五角星,我用的是底部一個(gè)灰色五角星+覆蓋一個(gè)黃色五角星,都是用的絕對(duì)定位,最后黃色五角星用的是width+overflow:hidden 把多余的部位隱藏了。

復(fù)制代碼
<view>
        <view style="font-size:12px;color:#aaa;text-align:center;margin-top:5px;">動(dòng)態(tài)評(píng)價(jià)星級(jí)</view>
        <view style="font-size:32px;color:#f63;text-align:center;margin-top:5px;">{{star}}</view>
        <view style="width:105px;margin:0 auto">
            <view style="display:flex;">            
                <view class="star" wx:for="{{yellow_star}}"><view class="icon icon_yellow"></view></view>
                <view wx:if="{{star_per>0}}" class="star" style="position:relative;">
            <
view class="icon icon_gray"></view>
            <
view class="icon icon_yellow "style="width:{{star_per}}%;overflow:hidden;position:absolute;left:0;top:0;"></view>
          </
view> <view class="star" wx:for="{{gray_star}}"><view class="icon icon_gray"></view></view> </view> </view> </view>
復(fù)制代碼

5.實(shí)現(xiàn)效果圖如下:

五、總結(jié)

這個(gè)效果的實(shí)現(xiàn)無(wú)非就三點(diǎn)。第一點(diǎn)引用字體。第二點(diǎn)比較重要,就是如何用css畫出想要的五角星,至于動(dòng)態(tài)實(shí)現(xiàn)那塊其實(shí)一點(diǎn)也不難,思路清晰了,自然就水到渠成了。如果覺得有不妥的地方還望賜教。覺得有更好的方法也可以分享一下哦。

相關(guān)案例查看更多