利用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 相关文章推荐
精通Javascript系列之数据类型 字符串
Jun 08 Javascript
mailto的使用技巧分享
Dec 21 Javascript
javascript搜索框效果实现方法
May 14 Javascript
jQuery满屏焦点图左右滚动特效代码分享
Sep 07 Javascript
JS实现带鼠标效果的头像及文章列表代码
Sep 27 Javascript
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
vue项目中引入noVNC远程桌面的方法
Mar 05 Javascript
详解js类型判断
May 22 Javascript
vue.js 中使用(...)运算符报错的解决方法
Aug 09 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
在vue中阻止浏览器后退的实例
Nov 06 Javascript
JS实现吸顶特效
Jan 08 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
PHP新手上路(十三)
2006/10/09 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
PHP 实现链式操作
2021/03/09 PHP
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python字典基本操作实例分析
2015/07/11 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
python numpy 按行归一化的实例
2019/01/21 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
python 爬取疫情数据的源码
2020/02/09 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Pycharm Git 设置方法
2020/09/15 Python
初一体育教学反思
2014/01/29 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
七年级地理教学计划
2015/01/22 职场文书
英文导游词
2015/02/13 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
爱的教育观后感
2015/06/17 职场文书