我正在使用此模板在用户旁边显示评分。
{insert name=get_percent value=a assign=mpercent userid=$p.USERID}
{if $mpercent ne ""}
<div class='user-rate'>
rate<span class='green'>{$mpercent}%</span>
</div>
{else}
<div class='user-rate'>not rated yet</div>
{/if}
我想将评分从百分比值更改为星级评分(0-5)。
中尝试了答案这是代码,因为我添加了以下CSS:
span.stars, span.stars span {
display: block;
background:url(../images/stars.png) 0 -16px repeat-x;
width: 80px;
height: 16px;
}
span.stars span {
background-position: 0 0;
}
和JavaScript:
$(function() {
$("span.stars").stars();
});
$.fn.stars = function() {
return $(this).each(function() {
$(this).html($('<span />')
.width(Math.max(0, (Math.min(5, parseFloat($(this).html())))) * 16));
});
}
并且已经将其用于每个评级:
<p> <span class="stars">{$mpercent}</span> </p>
我使用{$mpercent}
来获得会员的评分,但结果是我一直得到5星。
如果我将span类的值更改为固定数字(让我们说1,2或3),我也会得到相同的结果。
答案 0 :(得分:0)
两点:
($mpercent/100)*5
转换为0-5范围。但是,代码看起来是正确的。我建议你将值改为0到5之间,然后仔细检查它仍然总是显示5 *。请注意,此代码仅在DOM加载时运行,因此如果您使用chrome开发人员工具或类似工具更改跨度的内容,则 希望星级评分自动更新。