利用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常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
Dec 25 Javascript
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
jquery parent和parents的区别分析
Oct 02 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
Jquery动态添加输入框的方法
May 29 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
深入浅析jQuery对象$.html
Aug 22 Javascript
javascript表单控件实例讲解
Sep 13 Javascript
JavaScript获取ul中li个数的方法
Feb 13 Javascript
Node.js中DNS模块学习总结
Feb 28 Javascript
vue分页器组件编写方法详解
Jun 28 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读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
jQuery实现hover合成事件的方法
2015/08/06 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
Vuex 入门教程
2018/01/10 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python中常见的数据类型小结
2015/08/29 Python
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python AES加密模块用法分析
2017/05/22 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
python dict 相同key 合并value的实例
2019/01/21 Python
从0开始的Python学习016异常
2019/04/08 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
重构Python代码的六个实例
2020/11/25 Python
python 实现简易的记事本
2020/11/30 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
社区学习十八大感想
2014/01/22 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
保健品市场营销方案
2014/03/31 职场文书
人事任命书怎么写
2014/06/05 职场文书
云冈石窟导游词
2015/02/04 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS
深入理解Pytorch微调torchvision模型
2021/11/11 Python
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS