搜索

首页  >  问答  >  正文

在特定条件下,移动v-text-field文本的位置

<p>我正在使用Vue.js和Vuetify。遇到了一个有趣的场景。 所以我有三个选项(单选按钮)</p> <ul> <li>左</li> <li>中</li> <li>右</li> </ul> <p>我有一个带有特定文本值和只读属性的v-text-field。 现在,当选项改变/选择时,我想要改变该文本在v-text-field内的位置。</p> <p>例如,当选项1(左)时,文本应该移动到v-text-field内的左侧。当选项2(中)时,文本应该移动到中间。依此类推。</p> <p>对此有什么建议。如果有更好的方法,请指导一下。</p>
P粉041856955P粉041856955536 天前617

全部回复(2)我来回复

  • P粉306523969

    P粉3065239692023-08-29 14:57:47

    你可以使用Vue中的class或style绑定

    data() {
      return {
        activeAlignment: 'center'
      }
    }
    <div :style="{text-align : activeAlignment} ></div>

    然后将activeAlignment绑定到你的单选按钮模型上

    回复
    0
  • P粉466290133

    P粉4662901332023-08-29 12:21:57

    您可以创建类并将它们绑定:

    new Vue({
      el: '#app',
      vuetify: new Vuetify(),
      data: () => ({
        text: 'some text',
        align: ''
      })
    })
    .left .v-text-field__slot textarea, .left .v-text-field__slot input {
      text-align: left;
    }
    .center .v-text-field__slot textarea, .center .v-text-field__slot input {
      text-align: center;
    }
    .right .v-text-field__slot textarea, .right .v-text-field__slot input {
      text-align: right;
    }
    <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@6.x/css/materialdesignicons.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
    </head>
    <body>
    <div id="app">
      <v-app>
        <v-main>
          <v-container>
            <v-btn-toggle
              v-model="align"
              tile
              color="deep-purple accent-3"
              group
            >
              <v-btn value="left">左对齐</v-btn>
              <v-btn value="center">居中对齐</v-btn>
              <v-btn value="right">右对齐</v-btn>
            </v-btn-toggle>
            <v-textarea
              :class="align"
              v-model="text"
              label="文本"
            ></v-textarea>
            <v-text-field
              v-model="text"
              label="文本"
              :class="align"
            ></v-text-field>
          </v-container>
        </v-main>
      </v-app>
    </div>
    <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>

    回复
    0
  • 取消回复