利用Vue的v-for和v-bind实现列表颜色切换


Posted in Javascript onJuly 17, 2020

需求:

在页面上显示四个列表,初始时字体为黑色。

鼠标点击某一个列表时,该列表的颜色变为红色,其余列表仍为黑色。

代码实现:

<!-- css -->
<style>
 .red{
 color: red;
 }
</style>

<!-- html -->
<div id="app">
 <ul>
 <li v-for="item,index in movies" :class="{red: changeRed == index}" v-on:click="change(index)">{{item}}</li>
 </ul>
</div>

<!-- JavaScript -->
<script src="../JS/vue.js"></script>
<script>
 const app = new Vue({
 el: '#app',
 data: {
 movies: ['肖申克的救赎','泰坦尼克号','当幸福来敲门','流浪地球'],
 changeRed: -1
 },
 methods: {
 change:function (index) {
 this.changeRed=index;
 }
 }
 })
</script>

代码解释:

首先浏览器直接显示列表,因为此时没有监听到click事件。

当鼠标点击某一个列表时,Vue自动获取列表下标,并执行change(index)函数,改变changeRed的值,此时当前列表的v-bind:class="{red: changeRed == index}"中的red为true,当前一项列表显示为红色。其余列表的changeRed == index为false,所以不显示红色。

补充知识:vue学习(绑定class、v-bind:style(对象语法、数组语法))

vue 属性绑定

css

.class0{
 color: red;
 font-size: 10px;
 }

 .class00{
 color: blue;
 font-size: 70px;
 }

 .class2{
 color: yellow;
 font-size: 30px;
 }

 .class3{
 color: indianred;

 }

 .class4{
 font-size: 30px;
 }

1 class绑定

1.1 字符串绑定

<div id="app1">
 可以绑定一个默认class 字符串绑定class
 <p class="class0" :class="a"> xxxx是字符串 </p>

 <button @click="updates1"> 点击</button>
</div>
// 1.1 字符串绑定
 var a = new Vue({
 el:'#app1',
 data: {
  //绑定默认css属性
  a: "class1",
  b:"class0",

 },
  //动态切换css属性
  methods: {
  updates1 (){
   this.a = 'class2'

  }
  }
 });

1.2 对象绑定 和 数组绑定

<div id="app2">
 对象绑定class
 <p :class="{class2:isA,class00:isB}"> xxxx是对象 例如 :class="{class2:isA,class00:isB}"</p>

 <button @click="updates2"> 点击</button> <br>

 数组绑定class <br>
 <p :class="['class3','class4']"> xxxx是数组 例如 :class="[class3,class4]" </p>

</div>
//1.2 对象绑定
 var a = new Vue({
 el:'#app2',


 data: {
  //绑定默认css属性
  isA: true,
  isB: false,
 },
 //动态切换css属性
 methods: {
  updates2 (){
  this.isA = false;
  this.isB = true;
  }
 }


 });

图示

利用Vue的v-for和v-bind实现列表颜色切换

点击后

利用Vue的v-for和v-bind实现列表颜色切换

2 style 绑定

<div id="app3">
 <div :style="{ color: activeColor, fontSize: fontSize + 'px' }">Style 绑定1 例如 :style="{ color: activeColor, fontSize: fontSize + 'px' }"</div>
 <div :style="objectCssStyle">Style 绑定2(绑定到一个样式对象通常更好) 例如 :style="objectCssStyle"</div>
 <div :style="[clSty1, clSty2]">Style 绑定3(数组语法) 例如 :style="[activeColor, fontSize]"</div>

 <button @click="updates4"> 点击</button>
</div>
// 2 style 绑定
 var a = new Vue({
 el:'#app3',
 data: {
  //绑定默认css属性
  activeColor: 'red',
  fontSize: 100,
  objectCssStyle:{
  color: 'red',
  fontSize: '10px'
  },
  objectCssStyle2:{
  color: 'yellow'
  },

  clSty1: {
  color: 'green',
  fontSize: '30px'
  },
  clSty2: {
  'font-weight': 'bold'
  }


 },
 //动态切换css属性
 methods: {
  updates4 (){
  this.activeColor = "blue";
  this.fontSize = 20;
  this.objectCssStyle = this.objectCssStyle2

  }
 }

 });

图示

利用Vue的v-for和v-bind实现列表颜色切换

点击后

利用Vue的v-for和v-bind实现列表颜色切换

以上这篇利用Vue的v-for和v-bind实现列表颜色切换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery选中select控件 无法设置selected的解决方法
Sep 01 Javascript
validator验证控件使用代码
Nov 23 Javascript
jquery延迟加载外部js实现代码
Jan 11 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
javascript实现简易计算器的代码
May 31 Javascript
AngularJs入门教程之环境搭建+创建应用示例
Nov 01 Javascript
@ResponseBody 和 @RequestBody 注解的区别
Mar 08 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
js中!和!!的区别与用法
May 09 Javascript
基于js实现判断浏览器类型代码实例
Jul 17 #Javascript
Vue实现背景更换颜色操作
Jul 17 #Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 #Javascript
Vue 实现v-for循环的时候更改 class的样式名称
Jul 17 #Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 #Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 #Javascript
JS this关键字在ajax中使用出现问题解决方案
Jul 17 #Javascript
You might like
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
Python 字符串定义
2009/09/25 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
python Canny边缘检测算法的实现
2020/04/24 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
简历中自我评价分享
2013/10/09 职场文书
九年级家长会邀请函
2014/01/15 职场文书
学校招生宣传广告词
2014/03/19 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
党员活动总结
2015/02/04 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
预备党员表决心的话
2015/09/22 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
对象析构函数__del__在Python中何时使用
2022/03/22 Python