vue点击tab改变背景颜色

vue点击tab改变背景颜色,第1张

代码思路:

遍历出data里面的数据 v-for

给li加点击事件

绑定class样式 怎么控制样式的显示

通过 class的控制 :class={class:index==变量} 下标和class变量是否相等控制true false

<template>

<div id="app">

<ul>

<li v-for='(item,index) in arr' :class='{bg:index==isactive}'

@click='fn(index)'>{{item}}</li>

</ul>

</div>

</template>

<script>

export default {

data () {return { data:{isactive:0, //默认第一个有样式arr:['健康医疗','生活服务','信息安全','文化娱乐'],

},

}

},

methods: {

fn (index) {

//点击切换 变量的值 赋值为 index

this.isactive=index console.log(index) } },}</script><style scoped lang='less'> .bg {color: red }</style>

vue的特点在于组件化,可以轻便开发单页面应用,但弊端就是它没能像原生 *** 控各自的body节点,因为所有的页面都拥有同一个body。这就难受了,如果希望设置单个页面的背景颜色而又不影响其他页面,那怎么办?

第一种方式(不建议)

beforeCreate() { document.querySelector('body').setAttribute('style','background-color:rgb(245,245,245)')},

beforeDestroy(){ document.querySelector('body').setAttribute('style', "background-color:''")}

第二种

beforeRouteEnter(to, from, next) {

    // 添加背景色document.querySelector('body').setAttribute('style', 'background-color:#f9f9f9')

    next()

  },

  beforeRouteLeave(to, from, next) {

    // 去除背景色document.querySelector('body').setAttribute('style', '')

    next()

  }

效果图:实现每次刷新都是不同的背景颜色

实现步骤:

1.将随机背景颜色的函数创建出来,bc(),同时获取后台数据,数据是存在vuex中,所以使用...mapState的方式获取

2.将color属通过forEach循环添加进后台数据中,等渲染页面的时候使用

3.通过for循环渲染页面,在需要背景颜色的地方用:style的方式实现


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11779817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存