利用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 相关文章推荐
js常用排序实现代码
Dec 28 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
May 08 Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 Javascript
jquery easyui使用心得
Jul 07 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
微信小程序 参数传递实例代码
Mar 20 Javascript
微信小程序 页面跳转传值实现代码
Jul 27 Javascript
JavaScript控制浏览器全屏显示简单示例
Jul 05 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
d3.js实现图形缩放平移
Dec 19 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读取RSS feed的代码
2008/08/01 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
一个PHP分页类的代码
2011/05/18 PHP
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
php实现微信发红包功能
2018/07/13 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python批量修改xml属性的实现方式
2020/03/05 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
出差报告范文
2014/11/06 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
会议简讯范文
2015/07/20 职场文书