利用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代码小结
Oct 14 Javascript
JQuery.Ajax之错误调试帮助信息介绍
Jul 04 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
Jan 09 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
Jan 09 Javascript
理解javascript对象继承
Apr 17 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 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错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
python抓取京东小米8手机配置信息
2018/11/13 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python装饰器语法糖
2019/01/02 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Python解析json代码实例解析
2019/11/25 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
python下载的库包存放路径
2020/07/27 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
出国导师推荐信
2014/01/16 职场文书
2014年英语工作总结
2014/12/20 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python