0

このテンプレートを使用して、ユーザーの横に評価を表示しています。

{insert name=get_percent value=a assign=mpercent userid=$p.USERID}

  {if $mpercent ne ""}
    <div class='user-rate'>
      rate<span class='green'>{$mpercent}&#37;</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です。

スパン クラスの値を固定数 (1、2、または 3 としましょう) に変更すると、同じ結果が得られます。

4

1 に答える 1