vue中点击导航栏,动态改变样式,经典写法

news2024/9/25 17:14:28

vue中点击导航栏,动态改变样式,经典写法

在vue中,我们通常会有这样的情况,在多个子模块之间,点击其中一个子模块,修改当前点击的子模块的样式。如图,点击B模块时,模块B样式改变,其它样式还原啦:
在这里插入图片描述
在这里插入图片描述
具体怎么实现呢,主要是使用动态属性绑定来实现的,其中也涉及 静态属性和动态属性结合使用。未选中模块的样式我们看做是静态属性,动态属性是在点击后加进来的(覆盖)的样式属性

动态属性绑定

我们先了解下动态属性绑定:动态属性绑定就是用变量动态的添加属性,如下:

<div id="app">
  <div :class="{ 'active': isActive }"></div>
</div>
<script>
new Vue({
  el: '#app',
  data: {
    isActive: true
  }
})
</script>
<style>
.active {
	width: 100px;
	height: 100px;
	background: green;
}
</style>

这里的 .active样式是否生效,取决于 isActive这个变量值是否为true

静态样式和动态样式结合使用

我们要实现想要的效果,还需要结合静态样式,因为静态样式用来渲染其它未激活状态的子模块,动态样式用来渲染激活状态的子模块
写法如下,需要把绑定的class属性改成中括号形式,因为中括号形式表示样式数组,存放多个样式:

:class="['itemclass' ,  indexItem== index ? 'active' :'']"

第一个样式为 itemclass,第二个样式要看 indexItem== index 这个表达式是否成立,如果成立,则加入 active样式,表示激活状态,
如果不成立,则不加任何样式,表示非激活状态。
这样描述应该很容易理解哈。

完整代码

于是我们可以写出完整的代码, 其中,我用indexItem 表示(标识)当前是哪一项是选中激活状态,index是当前选项的数组下标。
indexItem == index 就是当前这个模块,是否等于激活状态下的模块,如果是,添加active属性,修改背景色。
其中,点击事件changeItem用来设置当前点击的模块激活状态的模块

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Vue动态样式绑定</title>
    <script src="https://cdn.staticfile.net/vue/2.2.2/vue.min.js"></script>
  </head>
  <body>
    <div id="app" class="line">
      <div
        class="static"
        @click="changeItem(index)"
        v-bind:class="['itemclass', index==indexItem ? 'active':'']"
        v-for="(item, index) in items"
      >
        {{item.name}}
      </div>
    </div>

    <script>
      new Vue({
        el: "#app",
        data: {
          indexItem: 0,
          items: [{ name: "A" }, { name: "B" }, { name: "C" }],
        },
        methods: {
          changeItem(index) {
            this.indexItem = index;
          },
        },
      });
    </script>
    <style>
      .itemclass {
        margin: 40px;
        width: 100px;
        height: 100px;
        text-align: center;
        font-size: 40px;
        background: rgb(191, 212, 222);
      }

      .active {
        background: rgb(37, 209, 198);
      }
      .line {
        width: 600px;
        height: 100px;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: row;
      }
    </style>
  </body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】433.最小基因变化

1. 题目 2. 思想 这题的思想很经典&#xff0c;使用bfs求最短路径。相似的题目还有这道题。 把每次合理的变换都记录在队列中&#xff0c;然后先进先出&#xff0c;同时记录出执行的次数&#xff0c;得到最后的结果。同时需要把历史上曾经入队的基因串都放到字典里&#xff0…

IAM 编程访问和 AWS CLI

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; IAM 编程访问&#xff08;欢迎来到雲闪世界。&#xff09; IAM 编程访问是指使用访问密钥通过 API 和命令行工具访问 AWS 服务和资源。 当您为 IAM 用户启用编程访问时&#xff0c;您将生成可用于验证和…

萝卜快跑和端到端的自动驾驶(1)

先看一篇论文 2311.18636 (arxiv.org) 这篇论文里有一个非常好的图 比较了一下模块化任务(级联任务)和端到端自动驾驶的区别 首先什么叫模块化任务(级联) 如上图所示&#xff0c;左边的方块中的子方块&#xff0c;是展示了自动驾驶获取数据的途径&#xff0c;这里包括&…

浅析国有商业银行人力资源数字化平台建设

近年来&#xff0c;在复杂的国际经济金融环境下&#xff0c;中国金融市场整体运行保持稳定。然而&#xff0c;随着国内金融机构改革的不断深化&#xff0c;国有商业银行全面完成股改上市&#xff0c;金融市场规模逐步扩大&#xff0c;体系日益完善&#xff0c;同时行业的竞争也…

五分钟搭建进销存库存表,轻松掌握库存动态!

在企业的日常运营中&#xff0c;库存管理如同心脏之于身体&#xff0c;其重要性不言而喻。一个高效、准确的库存统计看板&#xff0c;就像是企业的“库存晴雨表”&#xff0c;能够实时反映库存状况&#xff0c;助力企业精准决策&#xff0c;确保供应链畅通无阻。今天就来手把手…

qt-15综合实例(电子时钟)-多态重写鼠标单击和移动事件

综合实例-电子时钟 知识点digiclock.hdigiclock.cppmain.cpp运行图 知识点 setWindowOpacity(0.5);//设置窗体透明度 QTimer* Timer new QTimer(this);//新建一个定时器 connect(Timer,SIGNAL(timeout()),this,SLOT(ShowTime())); Timer->start(1000);//启动定时器 digic…

奇迹世界2单机版安装教程+GM工具+无虚拟机

今天给大家带来一款单机游戏的架设&#xff1a;奇迹世界2单机版。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整…

SAP与航信爱信诺电子发票系统集成案例

一、项目环境 某药业有限公司是一家以医药产业为主营、资本经营为平台的大型民营企业集团。公司成立迄今&#xff0c;企业经营一直呈现稳健、快速发展的态势集团总销售额超40亿元。 为融入企业内部的ERP、CRM等系统&#xff0c;支持自动化记账、对账流程&#xff0c;推动企…

面向未来的数据治理趋势与挑战

面向未来的数据治理趋势与挑战可以归纳为以下几个方面&#xff1a; 数据治理趋势 战略地位提升&#xff1a; 数据治理正在从传统的支持性角色转变为企业的战略核心&#xff0c;与业务战略紧密结合&#xff0c;以驱动数据驱动的决策和创新。人工智能与机器学习的应用&#xff…

什么是光伏气象站——仁科测控

【仁科测控&#xff0c;品质保障】光伏气象站&#xff0c;‌这一专门为光伏发电系统设计的监测设备&#xff0c;‌其核心能力在于精确且实时地捕捉那些对光伏发电效率产生关键影响的气象因素。‌这些数据不仅为评估光伏电站的发电性能提供了重要依据&#xff0c;‌更是优化运维…

VueX 使用

1.简介 就是用来多组件共享数据的实现用的 2.使用VueX 因为使用的是vue2 所以下的是vuex3 若是vue3 必须下的是 vue4 npm i vuex3 3.搭建环境 1.创建 src/store/index.js //该文件用于创建一个Vuex中最为核心的store//引入VueX import Vuex from vuex import Vue from vu…

springboot功能模块之POI操作Excel

一、前言 文件的导入导出: 这个功能主要就是帮助我们的用户能够快速的将数据导入到数据库中,不用在自己手动的一条一条的将数据新增到我们的数据库中.同时又能够方便我们能够将数据导出之后打印出来给领导们查看.不用非得带着电脑这里那里的跑.非常实用的功能. 文件的导入导…

Android低内存设备系统优化

切记,所有的优化都遵循一条准则: 空间换时间,时间换空间。 一、前言 我们为什么会觉得卡顿、不流畅? 卡顿等性能问题的最主要根源都是因为渲染性能,Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出信号,触发对UI进行渲染,如果每次渲染…

android13顶部状态栏里面调节背光 背景闪烁问题

总纲 android13 rom 开发总纲说明 目录 1.前言 2.问题分析 3.代码分析 4.代码修改 5.彩蛋 1.前言 android13顶部状态栏里面调节背光, 背景闪烁问题,会出现画面不全问题,如下图 2.问题分析 这里看起来是由于隐藏的时候,界面显示是一个渐变的隐藏,但是后面的背景又是…

NVDLA专题12:具体模块介绍——LUT Programming

LUT编程 LUT是NVDLA中SDP/CDP的实例&#xff0c;用于模拟神经网络中的非线性函数(Sigmoid/TanH/LRN等。)。我们知道&#xff0c;LUT精度高度依赖于LUT entry和曲线的斜率变化:LUT entry越多&#xff0c;精度越高。另一方面&#xff0c;曲线的斜率变化越大&#xff0c;越难模拟…

怎么把pdf文件转html格式?5个pdf转html方法学起来(超简单)

在信息化快速发展的今天&#xff0c;各种文件格式层出不穷。作为一种常见的文件格式&#xff0c;PDF因其跨平台的优势被广泛应用于文档的分享与存储。然而&#xff0c;随着网页技术的进步&#xff0c;越来越多的用户希望将PDF文档转换为HTML格式&#xff0c;以便在网页上进行编…

第三方软件测评中心分享:软件系统测试内容和作用

近年来&#xff0c;随着信息技术的迅猛发展&#xff0c;软件系统的应用范围不断扩大。保证软件质量的关键措施之一就是软件系统测试。软件系统测试是指在软件开发生命周期中&#xff0c;通过一系列特定的测试活动来验证和确认软件系统的性能、功能及安全性&#xff0c;确保软件…

使用大模型撰写移动机器人模拟器(CoppeliaSim、Gazebo、MORSE和Webots)的定量比较研究报告

使用大模型辅助阅读移动机器人模拟器&#xff08;CoppeliaSim、Gazebo、MORSE和Webots&#xff09;的定量比较研究报告-CSDN博客 表格总结 以下是对全文进行学术性科学总结的一系列表格&#xff1a; 1. 摘要表格 类别描述文章标题如何选择移动机器人模拟器&#xff1a;对Copp…

Spring Boot实战:使用模板方法模式优化数据处理流程

概述 在软件开发过程中&#xff0c;我们经常需要处理各种各样的数据&#xff0c;这些数据可能来自不同的源&#xff0c;比如数据库、文件系统或者外部API等。尽管数据来源不同&#xff0c;但很多情况下处理这些数据的步骤是相似的&#xff1a;读取数据、清洗数据、转换数据格式…

easyexcel--导入导出实现自定义格式转换

自定义格式 我们在数据库设计的时候经常会有枚举类型&#xff0c;如0表示普通用户&#xff0c;1表示VIP用户等&#xff0c;这在excel导入的时候&#xff0c;我们会填普通用户而不是0&#xff0c;这样就需要用到自定义格式把普通用户转换成0&#xff0c;我写了一个通用的抽象类…