CSS实现选中卡片样式操作

 

 图一默认自动选中,并且不可取消选中,当选择其他卡片才可点击下一步


在  “ src/assets ” 路径下存放  save.png,代表选中的状态

<div class="cards"><ul class="container"><li v-for="image in images" :key="image.id"><div class="card" @click="toggleSelection(image)"><img :src="require('@/assets/' + image.src)" class="img w-full h-full"><img :src="image.selected ? require('@/assets/save.png') : ''" :class="image.selected ? 'checked' : 'noChecked'" /></div></li></ul>
</div>
/* 这里用到了tailwindcss ,可自行修改css样式 */
<div class="flex justify-center mt-10"><el-button @click="nextStep" :disabled="!hasSelectedImages">下一步</el-button>
</div>
data() {return {images: [{ id: 1, src: "background.png", name: 'name1', selected: true },{ id: 2, src: 'background.png', name: 'name2', selected: false },{ id: 3, src: 'background.png', name: 'name3', selected: false },]};},computed: {// 只有点击除图片1外的卡片才能点击下一步hasSelectedImages() {return this.images.some(image => image.selected && image.id !== 1);}},methods: {// 选择图片1直接返回toggleSelection(image) {if (image.id === 1) {return;}image.selected = !image.selected;},// 点击下一步,将选中的图片的信息传递到下一个页面nextStep() {const selectedImages = this.images.filter(image => image.selected);const selectedImageInfo = selectedImages.map(image => ({id: image.id,src: image.src,selected: image.selected,name: image.name}));// 执行下一步操作,比如跳转到下一个页面// 使用Vue Router进行页面跳转,或执行其他逻辑操作this.$router.push({ path: '/compare', query: { imageInfo: JSON.stringify(selectedImageInfo) } });}}
.cards {display: flex;justify-content: center;width: 100%;height: 100%;
}
.cards .container {padding: 0;margin: 0 -11px;width: auto;
}
.cards li {width: 300px;padding: 0 19px;box-sizing: border-box;float: left;list-style: none;
}
.card {height: 430px;width: 100%;background: #fff;border: 1px solid #eaeefb;border-radius: 5px;box-sizing: border-box;text-align: center;position: relative;transition: all .3s ease-in-out;bottom: 0;cursor: pointer;transition: translate 0.5s;
}
.card:hover {translate: 5px 5px;
}
.card .img {margin: 130px auto 60px;width: 160px;height: 120px;
}
.checked {height: 20px;width: 20px;position: absolute;top: 2%;right: 6%;
}
.noChecked{display: none;
}

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

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

相关文章

【前端系列】vue

这里写目录标题 一、Vue简介1.1 主流前端框架/库简介 二、下载和安装Vue2.1 下载2.2 安装完成后&#xff0c;检查2.3创建全局安装目录和缓存日志目录2.4 为了下载包快速&#xff0c;改源为淘宝镜像2.5 查看npm配置修改是否成功 三、配置环境变量环境变量—用户变量—选中Path—…

进程间通信 --->信号灯

有名信号量: 1.创建 semget int semget(key_t key, int nsems, int semflg); 功能: 创建一组信号量 参数: key:IPC对象名 nsems:信号量的个数 semflg:IPC_CREAT 返回值: …

Vue+SpringBoot打造实验报告管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验管理模块2.2 实验实例模块2.3 实验批阅模块2.4 实验咨询模块 三、系统展示四、核心代码4.1 查询实验4.2 新增实验咨询4.3 回复实验咨询4.4 新增实验实例4.5 查询实验实例 五、免责说明 一、摘要 1.1 项目介绍 基于…

【学习笔记】卫星基础知识

一、什么是卫星以及它如何工作&#xff1f; 通信卫星是一种人造卫星&#xff0c;通过使用转发器在源和接收器之间中继和放大无线电电信信号。卫星的工作原理是接收从地球发送的无线电信号并将无线电信号重新发送回地球。卫星使用从大型太阳能电池阵列收集的太阳能&#xff0c;…

Java面试题【必知必会】基础(2024)

近期一直在准备面试&#xff0c;所以为了巩固知识&#xff0c;也为了梳理&#xff0c;整理了一些java的基础面试题&#xff01;同时也希望各位英雄和女侠能够补充&#xff01;不胜荣幸&#xff01;&#xff01;&#xff01; 1. Final 有什么用&#xff1f; final 的意思是最后…

HTML标签分类,web微信开发者工具

第一个阶段&#xff0c;开发环境和工具准备 浏览器 &#xff08;Google&#xff0c;FireFox&#xff0c;…&#xff09;下载&#xff0c;安装前端开发工具vscode&#xff0c;下载、安装 node、npm、webpack、webpack-cli、cnpm&#xff0c;配置前端开发环境下载、配置PHP和MyS…

计算机常用的单位以及换算

通常买电脑时候&#xff0c;或者手机的时候&#xff0c;通常会问多大内存&#xff1f; 但是实际你了解内存如何换算吗&#xff1f; 内存可以是1G&#xff0c;2G&#xff0c;4G&#xff0c;等等 首先注意&#xff0c;单位不区分大小写&#xff0c;所以1GB 1Gb 1gB都是相同的。…

Centos安装Jenkins

1、更新系统 &#xff08;1&#xff09;更新下系统 sudo yum -y update 安装用于下载java 17二进制文件的wget命令行工具 sudo yum -y install wget vim 2、卸载centos自带的jdk 由于我们安装的版本比较高&#xff0c;需要jdk17&#xff0c;卸载centos自带的jdk。用 下面的…

软件为什么要做软件测试

软件要做测试的原因在于以下几个关键点&#xff1a; 发现和修复错误&#xff1a;软件测试的首要目的是识别并修复代码中的错误、缺陷或漏洞。这些错误可能导致程序崩溃、数据丢失、功能异常等&#xff0c;影响软件的正常运行。 保证质量与可靠性&#xff1a;通过系统性的测试活…

【vue/组件封装】封装一个带条件筛选的搜索框组件(多组条件思路、可多选)详细流程

引入&#xff1a;实现一个带有筛选功能的搜索框&#xff0c;封装成组件&#xff1b; 搜索框长这样子&#xff1a; 点击右侧筛选图标后弹出层&#xff0c;长这样子&#xff1a; 实际应用中有多组筛选条件&#xff0c;这里为了举栗子就展示一组&#xff1b; 预览&#xff1a;…

POST 请求,Ajax 与 cookie

POST 请求则需要设置RequestHeader告诉后台传递内容的编码方式以及在 send 方法里传入对应的值 xhr.open("POST", url, true); xhr.setRequestHeader(("Content-Type": "application/x-www-form-urlencoded")); xhr.send("key1value1&…

07-prometheus的自定义监控-pushgateway工具组件

一、概述 pushgateway用于自定义监控节点、节点中服务的工具&#xff0c;用户可以通过自定义的命令获取数据&#xff0c;并将数据推送给pushgateway中&#xff1b; prometheus服务&#xff0c;从pushgateway中获取监控数据&#xff1b; 二、部署pushgateway 我们可以“随便”找…

微服务高性能通信技术-gRPC实战落地

在微服务架构中&#xff0c;服务之间的通信是至关重要的。为了实现高性能、低延迟和跨语言的服务间通信&#xff0c;gRPC是一个流行的选择。gRPC是一个开源的、高性能的、通用的RPC&#xff08;远程过程调用&#xff09;框架&#xff0c;基于HTTP/2协议和Protocol Buffers序列化…

Pytorch学习 day03(Tensorboard、Transforms)

Tensorboard Tensorboard能够可视化loss的变化过程&#xff0c;便于我们查看模型的训练状态&#xff0c;也能查看模型当前的输入和输出结果 在Pycharm中&#xff0c;可以通过按住ctrl&#xff0c;并左键点击某个库来进入源文件查看该库的使用方法SummaryWriter是用来向log_dir…

文件上传到oss上以及下载

<template><!-- 批量渠道变更 --><div><div style"margin-bottom: 10px; display: flex;"><Download name"下载模板" type"Url" url"https://file.wonder-link.net/%E6%89%B9%E9%87%8F%E6%B8%A0%E9%81%93%E5%8F…

140 Linux 系统编程17 ,进程组,会话,创建会话,守护进程

1. 进程组&#xff0c;也称之为作业。代表一个或多个进程的集合。 每个进程都属于一个进程组。在waitpid函数和kill函数的参数中都曾使用到。操作系统设计的进程组的概念&#xff0c;是为了简化对多个进程的管理。 当父进程&#xff0c;创建子进程的时候&#xff0c;默认子进程…

【数据结构】顺序表+链表

目录 1.顺序表 1.1初始化顺序表 1.2销毁顺序表 1.3检查容量并扩容 1.4把某个元素插入到下标为pos的位置 1.5头插和尾插 1.6删除下标为pos的元素 1.7头删和尾删 2.顺序表的问题及思考 3.链表 3.1链表的访问 3.2链表的增删查改 1.顺序表 顺序表的本质其实就是一个数组…

Tensorflow2.0笔记 - 计算梯度

本笔记主要记录tf.GradientTape和tf.gradient的用法 import tensorflow as tf import numpy as nptf.__version__#要计算梯度的所有参数计算过程必须放到gradient tape中 #with tf.GradientTape as tape: w tf.constant(1.) x tf.constant(2.)with tf.GradientTape() as tap…

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型 IMU测量方程中的噪声模型IMU的离散时间噪声模型 IMU测量方程中的噪声模型 在大多数系统中&#xff0c;IMU的噪声由两部分组成&#xff1a;测量噪声&#xff08;Measurement Nosie&#xff09;与零偏&#xff08;Bias&#…

1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率

文章目录 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率&#xff08;一&#xff09;时延&#xff08;二&#xff09;时延带宽积&#xff08;三&#xff09;往返时延RTT&#xff08;四&#xff09;利用率 1.1_3 性能指标——时延、时延带宽积、往返时间RTT、利用率 …