質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

4958閲覧

円状のゲージの角丸を取りたい

arue

総合スコア43

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/03/15 00:50

編集2018/02/08 02:01
<div class="levelGauge gaugeMeter" data-used="30" data-total="100" data-size="210" data-width="10" data-style="Full" data-color="#e73820" data-back="#efefef" style="width: 210px;"> <span style="line-height: 210px; font-size: 46.2px;"></span> <canvas width="210" height="210"></canvas> </div> コード

イメージ説明
現在jqueryを用いてこちらの内容で数値に合わせて動く円ゲージを実現しています。カラー部分はcanvasで指定してあるようで、このカラー部分の角を取る良い方法が見つかりません。

テラテイルのバッジのゲージを参考にしていてそちらは角丸ではありません。
良い方法がありましたらお願い致します。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2017/03/15 00:59

このようなグラフ表示をするために、どんなライブラリを使っていますでしょうか。
arue

2017/03/15 01:18

jquery.AshAlom.gaugeMeter というものを使用しています
kei344

2017/03/15 02:23

「canbas」ではなく「canvas」では?
arue

2017/03/15 06:47

ご指摘ありがとうございました。修正致しました
kei344

2017/03/15 07:37

こちらの環境では変更/修正が確認できませんでした。すみませんが、もう一度確認してもらえませんか?最近teratailで修正が保存されない事が頻繁にあるようなので・・・。
guest

回答3

0

ベストアンサー

percircleというライブラリを使用すると質問者さんの実現したいことが行えると思います。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>タイトル</title> 6 <link rel="stylesheet" href="percircle.css"> 7 <style type="text/css"> 8 body { 9 background-color: #555555; 10 } 11 12 .percircle { 13 background-color: #000000; 14 } 15 16 .percircle .bar, 17 .percircle .fill { 18 border-color: #ffffff; 19 } 20 21 .percircle > span { 22 color: #000000; 23 } 24 25 .percircle:hover > span { 26 -webkit-transform: scale(1.0); 27 -moz-transform: scale(1.0); 28 -ms-transform: scale(1.0); 29 -o-transform: scale(1.0); 30 transform: scale(1.0); 31 color: #000000; 32 } 33 34 .percircle:hover::after { 35 -webkit-transform: scale(1.0); 36 -moz-transform: scale(1.0); 37 -ms-transform: scale(1.0); 38 -o-transform: scale(1.0); 39 transform: scale(1.0); 40 } 41 </style> 42</head> 43<body> 44<label for="number"> 45 <input type="number" id="number" max="100" min="0"> 46</label> 47<div id="bluecircle" data-percent="0" class="big"></div> 48<script src="https://code.jquery.com/jquery-3.2.0.min.js"></script> 49<script src="percircle.js"></script> 50<script type="text/javascript"> 51 $(function () { 52 $("#bluecircle").percircle(); 53 }); 54 $("#number").on("input", function () { 55 if ($.isNumeric($(this).val()) && parseInt($(this).val()) <= 100) { 56 $("#bluecircle").empty(); 57 $("#bluecircle").attr("data-percent", $(this).val()); 58 console.log(""); 59 $("#bluecircle").percircle(); 60 } 61 return false; 62 }); 63</script> 64</body> 65</html>

投稿2017/03/19 21:53

s8_chu

総合スコア14731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ThodorisBais

2018/02/04 09:23

percircleを使用していただきありがとうございます!
arue

2018/02/08 02:02

とても良いプラグインの提示をありがとうございます! 改修の際に是非使用させていただきます!
guest

0

丸くしているのはlineCapの設定なので、ここを"butt"にすれば解決します。

CanvasRenderingContext2D.lineCap
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap

が、残念ながら「AshAlom Gauge Meter」にはその設定がなく、該当部分がハードコーディングされているため、外せない要件なら別のライブラリを使ったほうがいいかもしれません。

JavaScript

1/*g.lineCap="round"*/g.lineCap="butt"

投稿2018/02/05 04:25

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご参考までに、TeratailのHTMLは以下のようになっていました。ライブラリを使わなくても、同じようにCanvas要素に直接、arcを描画すればよいのではないでしょうか。

JavaScript

1<div class="wrap_circle"> 2 <!-- ここのIDを動的に変えたい --> 3 <input type="hidden" id="ratio_203" value="0.6"> 4 <canvas id="canvas203" width="56" height="56"></canvas> 5 6 <script type="text/javascript"> 7 document.addEventListener('DOMContentLoaded', function() { 8 var canvas = document.getElementById('canvas'+203); 9 canvas.width = 56; 10 canvas.height = 56; 11 var ctx = canvas.getContext('2d'); 12 ctx.clearRect(0,0,56,56); 13 ctx.beginPath(); 14 ctx.lineWidth = 2; 15 ctx.strokeStyle="#eee"; 16 ctx.arc(28,28,26,0,Math.PI*2,false); 17 ctx.stroke(); 18 }) 19 </script> 20</div>

投稿2017/03/15 01:27

編集2017/03/15 01:28
shuntksh

総合スコア196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arue

2017/03/15 06:49

ご回答ありがとうございます。 そちらの方法で一度実装を試みてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問