使用vue项目中style样式修改的两个方法(不使用v-bind)

本文介绍了在Vue项目中不使用v-bind的情况下,如何动态修改元素的style属性。通过ref绑定和直接操作DOM元素两种方法,详细阐述了实现方式,并附有点击效果的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想要动态控制元素的style属性最直接的就是使用v-bind
下面案例使用了另外的两种方法:

  1. ref绑定
  2. 直接操作DOM元素
<template>
  <div id="app">
    <div class="son" @click="change(0)" ref="lengends"></div>
    <div class="son" @click="change(1)" ref="lengends"></div>
  </div>
  <!-- /#app -->
</template>

<script>
export default {
  name: "About",
  data(){
    return{
      lengend:{
        color:['red','yellow'],
        seen:[true,true]
      }
    }
  },
  mounted() {
    //挂载之后才可以操作DOM树
    let son=document.getElementsByClassName('son')
    for (let i=0;i<son.length;i++){
      son[i].style.backgroundColor=this.lengend.color[i]
    }
  },
  methods:{
    change(val){
      this.lengend.seen[val]=!this.lengend.seen[val]
      //直接利用ref操作DOM元素属性(对于大量的非v-for结构不友好)
      // this.$refs.lengends.style.backgroundColor=this.lengend.seen[val]?this.lengend.color[val]:'gray'

      //返璞归真啊,真的是(原生js才是真的神)
      let son=document.getElementsByClassName('son')
      son[val].style.backgroundColor=this.lengend.seen[val]?this.lengend.color[val]:'gray'
    }
  }
}
</script>

<style scoped>
.son {
  height: 100px;
  width: 100px;
  margin: 20px;
}
</style>

点击效果图:
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值