困っている事
スクロールバーの出ない画像と出る画像があり、v-showによる要素の表示非表示の切り替え時にscrollLeftを効かせてスクロールバーが出る画像を表示した際にバーを中心に持ってきたいと考えています。
computedやmethodsにscrollLeftを記入しましたがどれも機能せずに困っています。
v-showの切り替え時、またはページの設定としてscrollLeftを設定する方法はありませんでしょうか?
html
1 <div id="app"> 2 <div id="imageArea"> 3 <transition-group name="mainImageArea"> 4 <main-image-component 5 v-for = "(v, i) in filterDate" 6 :id = "filterDate[i].type" 7 :key = "i" 8 :src = "filterDate[i].src" 9 v-show = "selectSeason == filterDate[i].season" 10 ></main-image-component> 11 </transition-group> 12 </div> 13 </div>
vue
1var mainImageComponent = { 2 template: 3 ` 4 <img :src="src" :id="id"> 5 `, 6 props:['id','src'], 7} 8 9new Vue({ 10 el : "#app", 11 components: { 12 'main-image-component': mainImageComponent 13 }, 14 data: { 15 floorList: [], 16 AllImageDate: [], 17 selectNumber: '1', 18 selectType: '1', 19 selectSeason: 'spring', 20 filterDate: [] 21 }, 22 computed: { 23 checkItems: function() { 24 let imageDate = this.AllImageDate; 25 this.filterDate = imageDate.filter(x => x.class == this.selectNumber); 26 return 27 } 28 }, 29 methods: { 30 userSelectFloor: function(imageClass, imageType, imageDefault) { 31 this.selectimage = imageClass;(別コンポーネントからのデータ) 32 this.selectType = imageType;(別コンポーネントからのデータ) 33 this.selectSeason = imageDefault;(別コンポーネントからのデータ) 34 }, 35 userSelectDirection: function(fromChildEvent) { 36 this.selectDirection = fromChildEvent;(別コンポーネントからのデータ) 37 } 38})
試したこと
・html側でwindows.onloadを使用しページの読み込み時にscrollLeftを効かせる
→初期の表示をスクロールバーが存在する画像にしないと動作しない、v-showを切り替えて戻るとバーが左端に戻る。
・methodsにdocument.getElementById('imageArea').scrollLeftを記述し、v-showを切り替えた際に実行させる
→動作しない
・computedにdocument.getElementById('imageArea').scrollLeftを記述し、selectSeasonが切り替わった際に実行させる
→動作しない
お答えいただけると幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。