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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

1回答

3203閲覧

bootstrapのProgressbarにvueの値を反映させたい

zeijaku.net

総合スコア161

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2017/12/21 08:31

bootstrapのプログレスバーとvue.jsを組み合わせて使いたいと思っています。
w-75の部分でプログレスバーのボリューム調整が出来ますが、この75の部分をvue.jsで受け取る値と連動させたいと思っています。

<div class="progress"> <div class="progress-bar w-75" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100"></div> </div>

w-75をw-{{count}} としてもダメですが、v-bind:class で指定する場合にどのように記載すれば良いのかが思いつきません。
どのように記載すればw-75の75の部分を動的に変更出来るがアドバイスいただけると助かります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

bootstrap詳しくはないですが、

HTML

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 6<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous"> 7 8<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 9<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script> 10<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script> 11 12<script src="https://cdn.jsdelivr.net/npm/vue"></script> 13 14</head> 15<body> 16 <div id="app"> 17 <div class="progress"> 18 <div :class="calcClass" role="progressbar" :aria-valuenow="count" aria-valuemin="0" aria-valuemax="100"></div> 19 </div> 20 <div class="progress"> 21 <div class="progress-bar" role="progressbar" :style="calcStyle" :aria-valuenow="count" aria-valuemin="0" aria-valuemax="100"></div> 22 </div> 23 </div> 24</body> 25<script> 26var app = new Vue({ 27 el: '#app', 28 data: function() { 29 return({ 30 count: 40, 31 }); 32 }, 33 computed: { 34 calcClass: function() { 35 return("progress-bar w-" + [25, 50, 75, 100][Math.floor(this.count / 25)]); 36 }, 37 calcStyle: function() { 38 return("width: " + this.count + "%"); 39 } 40 } 41}); 42setInterval(function() { 43 app.count = Math.random() * 100; 44}, 1000); 45</script> 46</html> 47

こんな感じかしら

投稿2017/12/21 09:38

rururu3

総合スコア5545

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

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

zeijaku.net

2017/12/22 07:03

ご回答いただきありがとうございます。 値の書換えのみでしたのでもう少しシンプルな感じを想定したのですが、computed側で行うことで解決できました。 vueを使い始めたばかりで理解が浅いのですがこれから幅を広げていければと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問