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

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

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

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

Q&A

0回答

482閲覧

Vueでイベントの検知がうまくできない

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

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

0グッド

0クリップ

投稿2020/05/19 00:13

編集2020/05/19 01:07

前提・実現したいこと

以下のソースコードの音量およびタイムバーでスライダー式のバーが存在するのですが、●の球を動かすと音量や今の動画再生時間が変わるようにしたいのですが、球を押したときのイベント検知がうまくできていない状況です。

発生している問題・エラーメッセージ

イベントが検知できていない。

該当のソースコード

Vue.js

1<template lang="html"> 2 <div class="control-bar"> 3 <div class="control-bar-container"> 4 <div class="control-bar-play-icon"> 5 <!-- 再生ボタン --> 6 <b-img 7 @click="isPlayed" 8 :src="playedIcon" 9 fluid 10 /> 11 </div> 12 13 <div class="control-bar-time"> 14 <!-- 再生時間 --> 15 <span> 16 {{ durationTime }} 17 </span> 18 </div> 19 20 <div class="control-bar-seekbar"> 21 <!-- タイムバー --> 22 <div class="input-range input-range-seekbar"> 23 <div class="input-range-bg" /> 24 <div 25 class="input-range-val-bg" 26 /> 27 <input type="range"> 28 </div> 29 </div> 30 31 <div class="control-bar-mute"> 32 <!-- 音量ボタン --> 33 <b-img 34 @click="isSounded" 35 :src="soundedIcon" 36 fluid 37 /> 38 </div> 39 40 <div class="control-bar-volume"> 41 <!-- 音量バー --> 42 <div 43 class="input-range input-range-volume" 44 > 45 <div 46 class="input-range-bg" 47 /> 48 <div 49 @click="volSlideClick" 50 class="input-range-val-bg" 51 /> 52 <input type="range"> 53 </div> 54 </div> 55 </div> 56 </div> 57</template> 58 59<script> 60export default { 61 props: { 62 playedIcon: { 63 type: String, 64 required: true 65 }, 66 soundedIcon: { 67 type: String, 68 required: true 69 }, 70 durationTime: { 71 type: String, 72 required: false, 73 default: '00:00' 74 } 75 }, 76 methods: { 77 // 再生ボタンが押下された場合 78 isPlayed () { 79 this.$emit('isPlayed') 80 }, 81 // 音量ボタンが押下された場合 82 isSounded () { 83 this.$emit('isSounded') 84 }, 85 volSlideClick () { 86 this.$emit('volSlideClick') 87 } 88 } 89} 90</script> 91 92<style lang="scss" scoped> 93.control-bar { 94 position: absolute; 95 bottom: 63px; 96 left: 0; 97 width: 100%; 98} 99 100.control-bar-container { 101 width: 1056px; 102 height: 52px; 103 margin: 0 auto; 104 padding-top: 42px; 105 display: -webkit-box; 106 display: flex; 107 -webkit-box-pack: justify; 108 justify-content: space-between; 109 -webkit-box-align: center; 110 align-items: center; 111} 112 113.control-bar-play-icon { 114 width: 42px; 115 text-align: left; 116} 117 118.control-bar-time { 119 width: 176px; 120 padding-left: 6px; 121 box-sizing: border-box; 122 font-family: Roboto; 123 font-weight: bold; 124 font-size: 28px; 125 line-height: 69px; 126 text-align: right; 127 color: #888; 128} 129 130.control-bar-time span { 131 display: inline-block; 132} 133 134.control-bar-time span:nth-child(2) { 135 margin: 0 4px; 136} 137 138.control-bar-seekbar { 139 width: 550px; 140 padding-right: 28px; 141} 142 143.control-bar-volume { 144 width: 160px; 145} 146 147.input-range { 148 position: relative; 149 width: 100%; 150} 151 152.input-range input[type="range"] { 153 margin: auto; 154 -webkit-appearance: none; 155 position: relative; 156 cursor: pointer; 157 height: 12px; 158 border-radius: 6px; 159 z-index: 10; 160 background: none; 161} 162 163::-webkit-slider-runnable-track { 164 background: none; 165 height: 12px; 166 border-radius: 6px; 167} 168 169::-webkit-slider-thumb { 170 -webkit-appearance: none; 171 appearance: none; 172 cursor: pointer; 173 width: 32px; 174 height: 32px; 175 background: #276fea; 176 -webkit-filter: drop-shadow(0px 4px 0px rgba(0, 0, 0, 0.32)); 177 filter: drop-shadow(0px 4px 0px rgba(0, 0, 0, 0.32)); 178 border-radius: 50%; 179 display: block; 180 position: relative; 181 top: -10px; 182 z-index: 5; 183} 184 185.input-range-bg { 186 display: block; 187 position: absolute; 188 top: 5px; 189 left: 0; 190 width: 100%; 191 height: 12px; 192 border-radius: 6px; 193 background: #BFBFBF; 194 z-index: 2; 195} 196 197.input-range-val-bg { 198 display: block; 199 position: absolute; 200 top: 5px; 201 left: 0; 202 width: 0px; 203 height: 12px; 204 border-radius: 6px; 205 background: #276fea; 206 z-index: 3; 207} 208 209.input-range-seekbar input[type="range"] { 210 width: 550px; 211} 212 213.input-range-volume input[type="range"] { 214 width: 160px; 215} 216</style>

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

Vue2.0.0

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

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

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

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

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

kai0310

2020/05/19 00:47

まず、質問タイトルの誤字を修正してください。 そのような間違いがエラーの原因になるのです。
退会済みユーザー

退会済みユーザー

2020/05/19 01:07

失礼いたしました。誤字を修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問