当前位置 : 主页 > 网络编程 > PHP >

星星等级按照小数显示、百分比显示

来源:互联网 收集:自由互联 发布时间:2021-06-30
评分,显示星星数,按照小数显示星星亮度;希望得到你的优化! 背景图片和前端代码,(来自于网络) 1. [代码] [PHP]代码 /** * 根据评分数,显示几颗星星 * @param $score int 评分 * @dat
评分,显示星星数,按照小数显示星星亮度;希望得到你的优化!
背景图片和前端代码,(来自于网络)

1. [代码][PHP]代码    

/**
     * 根据评分数,显示几颗星星
     * @param $score int 评分
     * @date 2016/07/14
     * @return int
     */
    protected function handle_score($score = 0)
    {
        $offset = 90;
        if(!is_numeric($score) || $score <= 0)
        {
            return $offset;
        }

        //判断是否是小数
        if(is_float($score))
        {
            $score_arr = explode('.',round($score,1));
            $score_int = $score_arr[1]; //取小数点后数字
        }

        //星星背景偏移量计算
        if($score > 0 && $score < 1)
        {
            $offset = 90 - $score_int;
        }
        elseif($score == 1)
        {
            $offset = 70 - $score_int + 5;
        }
        elseif($score > 1 && $score < 2)
        {
            $offset = 70 - $score_int + 1;
        }
        elseif($score == 2)
        {
            $offset = 50 - $score_int + 6;
        }
        elseif($score > 2 && $score < 3)
        {
            $offset = 50 - $score_int + 2;
        }
        elseif($score == 3)
        {
            $offset = 30 - $score_int + 7;
        }
        elseif($score > 3 && $score < 4)
        {
            $offset = 30 - $score_int + 3;
        }
        elseif($score == 4)
        {
            $offset = 10 - $score_int + 8;
        }
        elseif($score >= 4 && $score < 5)
        {
            $offset = 10 - $score_int + 4;
        }
        elseif($score >= 5)
        {
            $offset = 0;
        }
        return $offset;
    }

//以下是view 视图代码
$love_val = $this->handle_score(4.9);
<img src="星星图片地址" style="background-color:#ddd;
    background-image:url('背景图片地址';
    background-repeat:no-repeat;
    background-position: $love_val px;"/>

2. [图片] assess_bg.gif    

3. [图片] assess.gif    

网友评论