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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

CSS

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

Q&A

解決済

1回答

725閲覧

グラフに合わせて位置を変えて文字を表示したい

glee2315

総合スコア0

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

CSS

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

0グッド

0クリップ

投稿2021/09/10 14:41

前提・実現したいこと

グラフのすぐ右横にpropsで受け取った数字を出力する事を実現したいです。

vuetifyでtypescriptのpropsから受け取ったリストの数字をv-modelで横棒グラフと「○○回」という文字に反映させて、v-forでループさせています。
propsで受け取った数字を元にグラフ化する事は出来たのですが、各グラフそれぞれのすぐ右横の位置に数字を表示することができません。
(下図、参照)
*下記の黒線カッコは、表示したい真横の位置が分かるように追記したものです。

イメージ説明

発生している問題

現在は、.childというCSSのクラスを作って指定したポジションに数字(*下記のソースコードのstrongを参照)を固定しているだけで、 v-forでループされた各横棒グラフのすぐ真横の位置にpropsで受け取った数字を表示させることが出来ません。

該当のソースコード

<template lang="pug"> v-card v-col(cols=12,md=12) v-card v-card-text(v-for="(opt, key) in times") v-progress-linear(v-model="times[key]" color='yellow' height='10' background-color="transparent") strong.child {{opt}} 回 </template> <script lang="ts"> import { defineComponent, PropType, ref, } from "@vue/composition-api"; export default defineComponent({ props: { data: { type: Object }, }, setup(props) { const times =ref(props.data.data); return { times, }; }, }); </script> <style lang="css" scoped> .child { position: relative; bottom: 15px; left:150px } </style>

試したこと

・strongに対して、v-bindを利用して:style='"left:"+value;'を当てはめましたが、うまくいきませんでした。
・CSSのfloat: right;で指定してみましたが、v-progress-linearのbackgroundの領域があり、直ぐ右横に出ませんでした。
・v-progress-linearのbackgroundの領域を削除し、すぐ右横に○○回の文字が来るように試しましたが、できなかったので、CSSで
領域を指定する方法で固定しています。

補足情報(FW/ツールのバージョンなど)

・chartjsはpropsのリストが増えて複数の横グラフにするさいに1つのグラフが小さくなるため利用したくありません。
・propsの参照先のリスト(props.data.data)は、右記を受け取っています。→ data: [43, 90, 10, 80, 27, 20],
・CSSでleftの値を横棒グラフの長さ(propsのリストの数字)に従って可変で設定できる方法があれば、ベストです。
(その他でも実現できる方法がございましたら、お待ちしております。)

"version": "2.0.0",
"pug": "^3.0.2",
"@nuxtjs/vuetify": "^1.11.3",
"@nuxt/typescript-build": "^2.1.0",

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

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

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

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

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

guest

回答1

0

自己解決

すみません、下記のようにstyleを指定する事で自己解決いたしました。
strong.child(:style="{ left: times[key] +'%' }") {{opt}} 回

ご検討いただいていた方がおられましたら、ありがとうございました。

投稿2021/09/11 00:47

glee2315

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問