Under certain conditions, move the position of the v-text-field text
P粉041856955
2023-08-28 21:40:26
<p>I'm using Vue.js and Vuetify. Encountered an interesting scene.
So I have three options (radio buttons)</p>
<ul>
<li>left</li>
<li>中</li>
<li>right</li>
</ul>
<p>I have a v-text-field with a specific text value and a read-only attribute.
Now, when the option changes/selects, I want to change the position of that text within the v-text-field. </p>
<p>For example, when option 1 (left), the text should be moved to the left within the v-text-field. When option 2 (middle) is used, the text should move to the middle. So on and so forth. </p>
<p>Any suggestions on this. If there is a better way, please guide me. </p>
You can use class or style binding in Vue
data() { return { activeAlignment: 'center' } }<div :style="{text-align : activeAlignment} ></div>Then bind
activeAlignmentto your radio button modelYou can create classes and bind them:
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>