2016-11-29 4 views
-3

レーティングがありますが、何らかの奇妙な理由により、レーティングが正しく機能していません。 つまり、完全に塗りつぶされており、塗りつぶす必要があります。何が問題なの?ここでは、正確にあなたが計算式を使用している場合は、私の悪い英語評価されていないラン、修正方法?

(function($) { 
 
    $.fn.percentPie = function(options) { 
 
    var settings = $.extend({ 
 
     width: 100, 
 
     trackColor: "EEEEEE", 
 
     barColor1: "777777", 
 
     barColor2: "777777", 
 
     barWeight: 30, 
 
     animateText: true, 
 
     startPercent: 0, 
 
     fps: 60 
 
    }, options); 
 

 
    var $this = $(this); 
 
    var $percentage = $this; 
 
    var $progressCount = $percentage.find('.tag'); 
 
    var prating = $percentage.find('.ratingplus').text(); 
 
    var pvotenum = $percentage.find('span[id]:last').text(); 
 
    var $progressCount = $percentage.find('.rateshow'); 
 
    var percentageProgress = (Math.round((pvotenum - (pvotenum - prating)/2)/pvotenum * 100))/10; 
 

 
    this.css({ 
 
     width: settings.width, 
 
     height: settings.width 
 
    }); 
 

 
    var that = this, 
 
     hoverPolice = false, 
 
     canvasWidth = settings.width, 
 
     canvasHeight = canvasWidth, 
 
     id = $('canvas').length, 
 
     canvasElement = $('<canvas id="' + id + '" width="' + canvasWidth + '" height="' + canvasHeight + '"></canvas>'), 
 
     canvas = canvasElement.get(0).getContext("2d"), 
 
     centerX = canvasWidth/2, 
 
     centerY = canvasHeight/2, 
 
     radius = settings.width/2 - settings.barWeight/2; 
 
    counterClockwise = false, 
 
     fps = 1000/settings.fps/2, 
 
     update = .01; 
 
    this.angle = settings.startPercent; 
 

 

 
    this.drawArc = function(startAngle, percentFilled, color1, color2) { 
 
     var drawingArc = true; 
 
     canvas.beginPath(); 
 
     canvas.arc(centerX, centerY, radius, (Math.PI/180) * (startAngle * 360 - 90), (Math.PI/180) * (percentFilled * 360 - 90), counterClockwise); 
 
     var grd = canvas.createLinearGradient(0, 0, settings.width, 0); 
 
     grd.addColorStop(0, color1); 
 
     grd.addColorStop(1, color2); 
 
     canvas.strokeStyle = grd; 
 
     canvas.lineWidth = settings.barWeight; 
 
     canvas.stroke(); 
 

 
     drawingArc = false; 
 
    } 
 

 
    this.fillChart = function(stop) { 
 
     if (settings.animateText == true) { 
 
     $({ 
 
      numberValue: 0 
 
     }).animate({ 
 
      numberValue: percentageProgress 
 
     }, { 
 
      duration: fps * 100, 
 
      easing: 'linear', 
 
      step: function() { 
 
      $progressCount.text(Math.ceil(this.numberValue) + '/10'); 
 
      } 
 
     }); 
 
     } else { 
 
     $progressCount.text(percentageProgress + '/10'); 
 
     } 
 

 
     var loop = setInterval(function() { 
 
     hoverPolice = true; 
 
     canvas.clearRect(0, 0, canvasWidth, canvasHeight); 
 

 
     that.drawArc(0, 360, settings.trackColor, settings.trackColor); 
 
     that.angle += update; 
 
     that.drawArc(settings.startPercent, that.angle, settings.barColor1, settings.barColor2); 
 

 
     if (that.angle > stop) { 
 
      clearInterval(loop); 
 
      hoverPolice = false; 
 
     } 
 
     }, fps); 
 

 
    } 
 

 
    this.fillChart(percentageProgress); 
 
    this.append(canvasElement); 
 
    return this; 
 
    } 
 
}(jQuery)); 
 

 
$(document).ready(function() { 
 
    $('.safari').percentPie({ 
 
    width: 100, 
 
    trackColor: "#444444", 
 
    barColor1: "#22d31f", 
 
    barColor2: "#d36a1f", 
 
    barWeight: 10, 
 
    animateText: false, 
 
    fps: 60 
 
    }); 
 
});
.chart { 
 
    position: relative; 
 
    margin: 30px auto 0 auto; 
 
} 
 
.rateshow { 
 
    width: 100%; 
 
    text-align: center; 
 
    position: absolute; 
 
    top: 43%; 
 
    color: #777777; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="safari chart"> 
 
    <span class="rateshow"> 
 
    <span id="ratig-layer-10" class="ignore-select"> 
 
     <span class="ratingplus">+22</span> 
 
    </span> 
 
    <span id="vote-id"> 
 
     <span rel="1"></span> 
 
    32 
 
    </span> 
 
    </span> 
 
</div>

、評価が満たされているためadvance.Sorryでいただきありがとうございますプリントの端数番号が正しい

ではないですここで

(function($){ 
 
    $.fn.percentPie = function(options){ 
 

 
     var settings = $.extend({ 
 
      width: 100, 
 
      trackColor: "EEEEEE", 
 
      barColor1: "777777", 
 
      barColor2: "777777", 
 
      barWeight: 30, 
 
      animateText : true, 
 
      startPercent: 0, 
 
      fps: 60 
 
     }, options); 
 

 

 
     var $this = $(this); 
 
     var $percentage = $this; 
 
     var $progressCount = $percentage.find('.tag'); 
 
     var prating = $percentage.find('.ratingplus').text(); 
 
     var pvotenum = $percentage.find('span[id]:last').text(); 
 
     var $progressCount = $percentage.find('.rateshow'); 
 
     var percentageProgress = (Math.round((pvotenum - (pvotenum - prating)/2)/pvotenum * 100))/100; 
 

 
    
 

 
     this.css({ 
 
      width: settings.width, 
 
      height: settings.width 
 
     }); 
 

 
     var that = this, 
 
      hoverPolice = false, 
 
      canvasWidth = settings.width, 
 
      canvasHeight = canvasWidth, 
 
      id = $('canvas').length, 
 
      canvasElement = $('<canvas id="'+ id +'" width="' + canvasWidth + '" height="' + canvasHeight + '"></canvas>'), 
 
      canvas = canvasElement.get(0).getContext("2d"), 
 
      centerX = canvasWidth/2, 
 
      centerY = canvasHeight/2, 
 
      radius = settings.width/2 - settings.barWeight/2; 
 
      counterClockwise = false, 
 
      fps = 1000/settings.fps/2, 
 
      update = .01; 
 
      this.angle = settings.startPercent; 
 

 
      
 
     this.drawArc = function(startAngle, percentFilled, color1, color2){ 
 
      var drawingArc = true; 
 
      canvas.beginPath(); 
 
      canvas.arc(centerX, centerY, radius, (Math.PI/180)*(startAngle * 360 - 90), (Math.PI/180)*(percentFilled * 360 - 90), counterClockwise); 
 
      var grd = canvas.createLinearGradient(0,0,settings.width,0); 
 
      grd.addColorStop(0, color1); 
 
      grd.addColorStop(1, color2); 
 
      canvas.strokeStyle = grd; 
 
      canvas.lineWidth = settings.barWeight; 
 
      canvas.stroke(); 
 
      
 
      drawingArc = false; 
 
     } 
 

 
     this.fillChart = function(stop){ 
 
      if(settings.animateText == true){ 
 
       $({numberValue: 0}).animate({numberValue: percentageProgress *10}, { 
 
        duration: fps*100, 
 
        easing: 'linear', 
 
        step: function() {   
 
        $progressCount.text(Math.ceil(this.numberValue) + '/10'); 
 
        } 
 
       }); 
 
      }else{ 
 
       $progressCount.text(percentageProgress + '/10'); 
 
      } 
 
      
 
      var loop = setInterval(function(){ 
 
       hoverPolice = true; 
 
       canvas.clearRect(0, 0, canvasWidth, canvasHeight); 
 

 
       that.drawArc(0, 360, settings.trackColor, settings.trackColor); 
 
       that.angle += update; 
 
       that.drawArc(settings.startPercent, that.angle, settings.barColor1, settings.barColor2); 
 

 
       if(that.angle > stop){ 
 
        clearInterval(loop); 
 
        hoverPolice = false; 
 
       } 
 
      }, fps); 
 
      
 
     } 
 

 
     this.fillChart(percentageProgress); 
 
     this.append(canvasElement); 
 
     return this; 
 
    } 
 
}(jQuery)); 
 

 
$(document).ready(function() { 
 

 
    $('.safari').percentPie({ 
 
     width: 100, 
 
     trackColor: "#444444", 
 
     barColor1: "#22d31f", 
 
     barColor2: "#d36a1f", 
 
     barWeight: 10, 
 
     animateText : false, 
 
     fps: 60 
 
    }); 
 

 
});
.chart { 
 
    position:relative; 
 
    margin:30px auto 0 auto; 
 
} 
 
.rateshow { 
 
    width:100%; 
 
    text-align:center; 
 
    position:absolute; 
 
    top:43%; 
 
    color:#777777; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="safari chart"> 
 
\t \t <span class="rateshow"> 
 
     <span id="ratig-layer-10" class="ignore-select"> 
 
      <span class="ratingplus">+22</span> 
 
     </span> 
 
     <span id="vote-id"> 
 
      <span rel="1"></span> 
 
      32 
 
     </span> 
 
\t \t </span> 
 
</div>

+0

を働く10を掛けなければなりませんか? '$ progressCount.text((percentageProgress * 10)+ '/ 10');' – epascarello

+0

ありがとうございました。今問題は、あなたが "animateText:true"を置くと、ランクが正しく表示されないということです。 – StarFlow

答えて

1

var percentageProgress = (Math.round((pvotenum - (pvotenum - prating)/2)/pvotenum * 100))/100; 

100で除算しています。だから今、あなたはここに10を掛けする必要があります。

else { 
     $progressCount.text((percentageProgress*10) + '/10'); 
} 

は今、二番目にそう

+0

ありがとうございます。今問題は、あなたが "animateText:true"を入れた場合です ランキングが正しく表示されない – StarFlow

+0

私に教えてください理由は何ですか? – StarFlow

関連する問題