【问题标题】:Vuetify V-File-input with append-outer-iconVuetify V-File-input 与 append-outer-icon
【发布时间】:2020-12-02 09:09:15
【问题描述】:

我想更改 v-file-input 图标并将图标放在后面。 所以我用“append-outer-icon”来改变图标和位置,但是 如果我单击该图标,则不会发生任何事情。 我想单击“附加外部图标”并打开文件夹,例如单击前置图标。 我的示例代码如下。

<template>
<v-file-input
                prepend-icon=""
                append-outer-icon="mdi-folder-open"
              ></v-file-input>
</template>

谁能给我建议?

【问题讨论】:

    标签: vue.js vuetify.js


    【解决方案1】:

    你可以用纯 CSS 做到这一点。仅使用prepend-icon,以及:

    .v-file-input {
      flex-direction: row-reverse;
    }
    

    演示:

    new Vue({
      vuetify: new Vuetify(),
      el: "#app"
    })
    .v-file-input {
      flex-direction: row-reverse;
    }
    <div id="app">
      <br /><br />
      <v-app id="inspire">
        <v-file-input prepend-icon="mdi-folder-open"
                 ></v-file-input>
      </v-app>
    </div>
    
    <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>

    【讨论】:

      【解决方案2】:

      向文件输入添加一个引用并使用click:append-outer 触发它:

      <v-file-input
                      prepend-icon=""
                      append-outer-icon="mdi-folder-open"
                     ref="file"
                    @click:append-outer="this.$refs.file.$el.querySelector('input').click()"
                    ></v-file-input>
      

      var app = new Vue({
        el: '#app',
        vuetify: new Vuetify(),
      methods:{
        open(){
       this.$refs.file.$el.querySelector('input').click()
      
       
        }
      }
      })
      #app{
      width:200px;
      padding:16px
      }
      <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
      <link href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css" rel="stylesheet">
      <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
      
      <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
      
      <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
      <div id="app">
        <v-file-input prepend-icon="" append-outer-icon="mdi-folder-open" ref="file" @click:append-outer="open"></v-file-input>
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-22
        • 2019-08-01
        • 2020-06-18
        • 2020-04-09
        • 1970-01-01
        • 2020-01-06
        • 2021-11-02
        相关资源
        最近更新 更多