繁体   English   中英

如何在 vue.js 中动态切换 3 个或更多字体真棒图标

[英]how to toggle 3 or more font-awesome icons dynamically in vue.js

我正在用 vue 创建一个石头剪刀布迷你游戏,我试图找到一种方法来切换变量等类。 例如:

<template>
  <div id="human">
    <div class="text-center">
      <div class="h2 mb-5">Human</div>

      <!-- PLEASE CHECK BELOW HERE -->
      <i class="play-hand far fa-hand-{{ iconName }}"></i>
      <!-- OR -->
      <i class="play-hand far {{ icon }}"></i>

      <div class="h3 mt-4">{{ activeHand }}</div>
      <div class="row select-hand mt-4">
        <div class="col-md-4">
          <i class="far fa-hand-rock" @click="setHand(hands[0])"></i>
        </div>
        <div class="col-md-4">
          <i class="far fa-hand-paper" @click="setHand(hands[1])"></i>
        </div>
        <div class="col-md-4">
          <i class="far fa-hand-scissors" @click="setHand(hands[2])"></i>
        </div>
      </div>
    </div>
  </div>
</template>

我标有评论。 我很确定你得到了我想要做的。 我不想为此使用document.querySelector()


<script>
export default {
  data: () => {
    return {
      activeHand: 'Choose a Hand',
      hands: [
        {
          name: 'Rock',
          strength: 'scissor',
          weakness: 'paper',
          icon: 'fa-hand-rock'
        },
        {
          name: 'Paper',
          strength: 'rock',
          weakness: 'scissor',
          icon: 'fa-hand-paper'
        },
        {
          name: 'Scissor',
          strength: 'paper',
          weakness: 'rock',
          icon: 'fa-hand-scissors'
        }
      ]
    }
  },
  methods: {
    setHand (hand) {
      console.log(hand.name)
      this.activeHand = hand.name
      console.log(hand.icon)

      let playHandSelector = document.querySelector('.play-hand')
      playHandSelector.classList.remove(this.activeHand.includes(hand))
      playHandSelector.classList.add(hand.icon)
    }
  }
}
</script>

<style lang="scss">
#human .far {
  transform: rotate(90deg);
}
</style>

必须有一种 vue 方式来通过名称动态切换类。 也许没有真/假切换?

您必须使用 Vue 的v-bind指令进行类绑定,并将任何变量用法放入该标记中。 看看这里的文档。

最终你的代码可能看起来像这样。

<i class="play-hand far" :class="icon"></i>

请记住在使用对象数组时使用正确的类绑定语法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM