前提・実現したいこと
画像のように
①写真のボーダーと(border:none;では消せませんでした)写真の壊れているマーク?を消して
②『ファイルを選択 選択されていません』を消して、代わりに写真が表示される箇所をクリックするとファイル選択ができて、
③ファイルを選ぶと画像のプレビューがで出てくるようにしたいです。
該当のソースコード
PictureComponent
1<template> 2 <div class="img-container"> 3 <input type="file" ref="file" @change="setImage" class="input" /> 4 <img :src="data.image" class="img"> 5 </div> 6 </div> 7 8</template> 9<script> 10export default { 11 data() { 12 return { 13 data: { 14 image: "", 15 name: "", 16 } 17 }; 18 }, 19 methods: { 20 setImage(e) { 21 const files = this.$refs.file; 22 const fileImg = files.files[0]; 23 if (fileImg.type.startsWith("image/")) { 24 this.data.image = window.URL.createObjectURL(fileImg); 25 this.data.name = fileImg.name; 26 this.data.type = fileImg.type; 27 } 28 }, 29 30 } 31}; 32</script> 33<style scoped> 34 .img-container { 35 36 } 37 .input { 38 39 } 40 41 .img { 42 width: 300px; 43 height: 300px; 44 background: #f2f2f2; 45 } 46</style> 47
app
1window.Vue = require('vue'); 2 3Vue.component('picture-component', require('./components/PictureComponent.vue').default); 4 5const picture = new Vue({ 6 el: '#picture', 7});
html
1 <div id="picture"> 2 <picture-component></picture-component> 3 </div>
回答3件
あなたの回答
tips
プレビュー