利用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 数组运用实现代码
Apr 13 Javascript
js变换显示图片的实例
Apr 16 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
Nov 17 Javascript
Node.js websocket使用socket.io库实现实时聊天室
Feb 20 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
vue源码中的检测方法的实现
Sep 26 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
Sep 29 Javascript
在react中使用vue的状态管理的方法示例
May 02 Javascript
js面向对象编程OOP及函数式编程FP区别
Jul 07 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
PHP里的中文变量说明
2011/07/23 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
通过Pandas读取大文件的实例
2018/06/07 Python
Python之pymysql的使用小结
2019/07/01 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
青年创业培训欢迎词
2014/01/10 职场文书
干部行政关系介绍信
2014/01/17 职场文书
党员党性分析材料
2014/02/17 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
2014年财政工作总结
2014/12/10 职场文书
索尼ICF-5900W收音机测评
2022/04/24 无线电