我可以在 vuejs 中单击更改我的字体吗?
can i change my font on a click in vuejs?
我正在使用带有 vuetify 组件的 Vuejs 我已经自定义了我的网站以具有两种国际化语言 (i18n)。
问题是当我切换到第二语言时,我也想更改字体,但不知道该怎么做。
style
.font{
font-family: 'b nazanin';
/*i want to use this font after i change my language*/
}
<template>
<button v-for="entry in languages" :key="entry.title" @click="changeLocale(entry.language)"v-on:click="font">
<flag :iso="entry.flag" ></flag>
{{entry.title}}
</button>
<h1 v-bind:style="{font}">{{ $t('titleInHome') }}</h1>
</template>
谁能帮我解决这个问题谢谢大家
您可以使用动态样式或动态样式 class,这些取决于代码中的某些变量。例如,请参见此处:
https://vuejs.org/v2/guide/class-and-style.html#Object-Syntax-1
例如,您可以编写两个 classes 然后像这样:
:class="{'classOne': languageA: , 'classTwo': languageB}" //(languageA and B would be bools in this case)
您可以使用样式绑定来完成。
HTML 模板:
<html>
<body>
<div id="app">
<h1 :style="styles">Apply font here</h1> <br>
<button v-for="entry in langs" @click="changeFont(entry.title)" :key="entry.title">
{{ entry.title }}
</button>
</div>
</body>
</html>
脚本:
new Vue({
el:"#app",
data:{
styleObj:{
color :'blue',
border: '2px blue dotted',
backgroundColor:'gray',
fontFamily:'Time New Roman'
},
langs:[
{ title :'Vue.js'},
{ title:'React'},
{ title:'Angular'}
]
},
methods:{
changeFont(lang){
let fontFamily = null;
if(lang == "Vue.js"){
fontFamily = "Arial";
}
else if(lang == "React"){
fontFamily = "Verdana";
}
else{
fontFamily = "Calibri";
}
this.styleObj.fontFamily = fontFamily;
}
}
});
我正在使用带有 vuetify 组件的 Vuejs 我已经自定义了我的网站以具有两种国际化语言 (i18n)。 问题是当我切换到第二语言时,我也想更改字体,但不知道该怎么做。
style
.font{
font-family: 'b nazanin';
/*i want to use this font after i change my language*/
}
<template>
<button v-for="entry in languages" :key="entry.title" @click="changeLocale(entry.language)"v-on:click="font">
<flag :iso="entry.flag" ></flag>
{{entry.title}}
</button>
<h1 v-bind:style="{font}">{{ $t('titleInHome') }}</h1>
</template>
谁能帮我解决这个问题谢谢大家
您可以使用动态样式或动态样式 class,这些取决于代码中的某些变量。例如,请参见此处:
https://vuejs.org/v2/guide/class-and-style.html#Object-Syntax-1
例如,您可以编写两个 classes 然后像这样:
:class="{'classOne': languageA: , 'classTwo': languageB}" //(languageA and B would be bools in this case)
您可以使用样式绑定来完成。
HTML 模板:
<html>
<body>
<div id="app">
<h1 :style="styles">Apply font here</h1> <br>
<button v-for="entry in langs" @click="changeFont(entry.title)" :key="entry.title">
{{ entry.title }}
</button>
</div>
</body>
</html>
脚本:
new Vue({
el:"#app",
data:{
styleObj:{
color :'blue',
border: '2px blue dotted',
backgroundColor:'gray',
fontFamily:'Time New Roman'
},
langs:[
{ title :'Vue.js'},
{ title:'React'},
{ title:'Angular'}
]
},
methods:{
changeFont(lang){
let fontFamily = null;
if(lang == "Vue.js"){
fontFamily = "Arial";
}
else if(lang == "React"){
fontFamily = "Verdana";
}
else{
fontFamily = "Calibri";
}
this.styleObj.fontFamily = fontFamily;
}
}
});