我可以在vuejs中单击更改字体吗?

时间:2019-12-24 06:39:53

标签: vue.js font-family

我正在将Vuejs与vuetify组件一起使用,我已经自定义我的网站以使用国际化(i18n)两种语言。 问题是当我更改为第二语言时,我也想更改字体。bur不知道该怎么做。

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>



在这种情况下,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

您可以通过样式绑定来实现。

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;
    }
  }
});

Complete Example

答案 1 :(得分:0)

您可以使用动态样式或动态类,这些可以取决于代码中的某些变量。例如,请参见此处:
https://vuejs.org/v2/guide/class-and-style.html#Object-Syntax-1

例如,您可以编写两个类,然后编写如下内容:

:class="{'classOne': languageA: ,  'classTwo': languageB}" //(languageA and B would be bools in this case)
相关问题