vue框架实现表情打分效果

news2025/1/8 14:21:56

本来今天要实现这个功能 但是在网上查了一下 就csdn上有一个符合要求的 但是他竟然收费,痛心疾首啊 太伤白嫖党的心的 所以我手写了一个这个类似功能的代码 希望能帮到有这个需求的同学们

技术栈是VUE3 用其他技术栈的也可以看 因为逻辑很简单都一样的
// 问卷的虚拟数据
const dataInfoList = ref(
    [
        {id:'0' ,label:'您对小区管理人员的服务态度是否满意?',count:''},
        {id:'1' ,label:'您对小区环境、绿化是否满意?',count:''},
        {id:'2' ,label:'您对小区内的清洁卫生及垃圾收集堆放是否满意?',count:''},
        {id:'3' ,label:'您对小区公共设施(健身器材、活动场所、电瓶车充电设施等)是否满意?',count:''},
        {id:'4' ,label:'您对小区开展社区文化娱乐活动是否满意?',count:''},
        {id:'5' ,label:'您对小区车辆管理及外来人员管理是否满意?',count:''},
        {id:'6' ,label:'您对小区物业维修及时、质量、回访是否满意?',count:''},
    ]
)

要是实现上面代码的话 数据格式应该都跟上面格式类似 不一样的大家酌情更改

               <!-- 问题列表 -->
                <div class="questionnaires">
                    <div class="questionnaires_box" v-for="(item,index) in dataInfoList" :key="index">
                        <!-- 序号 以及 每一项标题 -->
                        <p class="title"><span>{{ index+1 }},</span><span>{{ item.label }}</span></p>
                        <div class="grade">
                           //图片
                            <div class="grade_top">
                                <div @click="updateCount(item.id, 1)" :class="{ selected: item.count == 1 }">
                                    <img src="../../assets/icons/garid1.png" alt="">
                                     <span>很差1分</span>
                                </div>
                                <div @click="updateCount(item.id, 2)" :class="{ selected: item.count == 2 }">
                                    <img src="../../assets/icons/garid2.png" alt="">
                                       <span>不满意2分</span>
                                </div>
                                <div @click="updateCount(item.id, 3)" :class="{ selected: item.count == 3 }">
                                    <img src="../../assets/icons/garid3.png" alt="">
                                       <span>基本满意3分</span>
                                </div>
                                <div @click="updateCount(item.id, 4)" :class="{ selected: item.count == 4 }">
                                    <img src="../../assets/icons/garid4.png" alt="">
                                     <span>满意4分</span>
                                </div>
                                <div @click="updateCount(item.id, 5)" :class="{ selected: item.count == 5 }">
                                    <img src="../../assets/icons/garid5.png" alt="">
                                         <span>非常满意5分</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

updateCount(item.id, 2) 传入id 以及每一项对应的分值 用来修改每一项选中后的数据的分值进行对应的修改   

:class="{ selected: item.count == 1 }" 动态类名 如果本项数据的分值等于 XX 的话设置动态样式 (就是设置选中样式)

// 修改选中值的数据
const updateCount = (id,num) => { 
    let idx = dataInfoList.value.findIndex((value, index, array) => {
        return value.id === id;
    });
    if (idx !== -1) {
        dataInfoList.value[idx].count = num;
    }
}

样式(可以添加一个动画效果)

                          // 动画效果
                            @keyframes zoom {
                                    from {transform: scale(1)}
                                    to {transform: scale(1.1)}
                            }

                           .selected{
                                animation-name: zoom;
                                animation-duration: 0.6s;
                               //设置选中的图片样式
                                  img{
                                    width: 45px;
                                    height: 45px;
                                    transform: scale(1.1);
                                    max-width: 45px;
                                    max-height: 45px;
                                }
                               //设置选中文字样式
                                span{
                                     color: black;
                                 font-size: 13px;
                                 font-weight: 600;
                                }            
                            }

到这一步效果就可以实现了  表情包图片我放在文章上面的附带资源上了 可以再进阶一下 用俩种不同图片来显示选中的样式 看大家需求吧

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

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

相关文章

wait函数

#include <sys/types.h> #include <sys/wait.h> pid_t wait(int *wstatus); 功能&#xff1a;等待任意一个子进程结束&#xff0c;如果该子进程结束了&#xff0c;此函数会回收子进程的资源 参数&#xff1a; -int *wstatus&#xff1a;进程退出时的状态信息&…

CentOS在应用程序菜单中创建快捷方式

背景&#xff1a; 在CentOS系统中&#xff0c;安装一些应用软件的时候&#xff0c;我们可能会自定义安装路径&#xff1b;这样在安装完应用程序后&#xff0c;在“Application”下&#xff0c;可能找不到对应的快捷键&#xff1b;这是就需要手动去创建跨界方式。 应用&#xf…

【笔记】离线Ubuntu20.04+mysql 5.7.36 + xtrabackup定时增量备份脚本

一、环境 ● Ubuntu版本查看 lsb_release -a● mysql 版本查看 mysql --version我的是ubuntu 20.04&#xff0c;mysql是5.7.36&#xff0c;所以要用 install_percona-xtrabackup-24 二、原理 备份 通过ubuntu自带的定时器运行增量备份脚本备份文件可以存储在映射后的其他…

成集云 | 用友NC集成旺店通ERP(旺店通主管供应链)| 解决方案

源系统成集云目标系统 方案介绍 用友NC是用友NC产品的全新系列&#xff0c;是面向集团企业的世界级高端管理软件。它以“全球化集团管控、行业化解决方案、全程化电子商务、平台化应用集成”的管理业务理念而设计&#xff0c;采用J2EE架构和先进开放的集团级开发平台…

SQL Server 数据库变成单个用户怎么办

参考技术A 1、首先我们打开SQL SERVER的管理控制台&#xff0c;找到一个要设置角色的用户。 2、下面我们将为这个用户赋予创建数据库的角色&#xff0c;我们先用这个用户登录管理工具看一下是否具有创建用户的权限。 3、进行数据库创建的时候&#xff0c;提示如下的错误&…

JavaBean文字格斗游戏(面向对象编程)的个人重写以及个人解释

题目和个人思路: 先写role类(对象)和构造方法(要按照标准的JavaBean来写) 根据题意,类中要有一个行为(方法)->攻击 开始进入main中, 首先当然是要创建两个对象,然后调用(攻击)attack方法 以上都是个人经过学习后重新又写的代码. 望各位指出不足.

Git错误解决:如何处理“could not determine hash algorithm“问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

在 Linux 上运行 macOS?OSX-KVM 助你梦想成真!| 开源日报 No.36

isocpp/CppCoreGuidelines Stars: 39.4k License: NOASSERTION C Core Guidelines 是一个由 Bjarne Stroustrup 领导的协作项目&#xff0c;旨在帮助人们有效地使用现代 C。该指南侧重于较高级别的问题&#xff0c;如接口、资源管理、内存管理和并发性&#xff0c;并鼓励应用程…

界面组件DevExpress WinForms v23.1 - 富文本编辑器等功能升级

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

8b10b 64b/66b/ 究竟是什么作用呢?

下图是8/10B编码前后的频谱图&#xff1a; &#xfeff; 首先&#xff0c;8B-10B的目的是为了直流平衡&#xff0c;其目的在于让频谱图更加的稳定&#xff0c;是一个高通的形式&#xff0c;从而受低频信号干扰小&#xff0c;使得眼图扩大&#xff0c;减小码间串扰因为CDR(时钟…

如何使用微信文件传输助手?看这里!

微信文件传输助手在哪里&#xff1f;为什么我找不到&#xff1f;有哪位朋友能够告诉我吗&#xff1f; 微信文件传输助手是微信官方推出的一款辅助工具&#xff0c;为用户提供了便捷的文件传输方式。用户在使用微信的过程中&#xff0c;可以随时随地通过该功能在手机和电脑之间任…

如何使用 Humata.ai:快速理解和总结文献

链接&#xff1a; Humata 简介 Humata.ai 是一个人工智能驱动的文献阅读助手&#xff0c;可以帮助用户快速理解和总结文献。它可以提取文献的关键信息&#xff0c;并以简洁易懂的语言生成摘要。此外&#xff0c;Humata.ai 还可以回答用户关于文献的问题&#xff0c;帮助用户…

如何在32位MCU用printf()函数打印64位数据

1. 在32位MCU上定义64位变量&#xff1a; unsigned long long time_base; unsigned long long temp_time;2. 调用打印函数&#xff1a; printf("RFID:time_base:%d\r\n",time_base); printf("RFID:temp_time:%d\r\n",temp_time); printf("RFID:Ru…

2023华为杯研究生数学建模竞赛选题建议+初步分析

如下为C君的2023华为杯研究生数学建模竞赛&#xff08;研赛&#xff09;选题建议初步分析 2023华为杯研究生数学建模竞赛&#xff08;研赛&#xff09;选题建议 提示&#xff1a;DS C君认为的难度&#xff1a;CE<D<F&#xff0c;开放度&#xff1a;CDE<F。 华为专项…

python绘制三维图片(二维+一维颜色)

目录 data_3d_new 是一个dataframe数据&#xff0c;包括了&#xff40;Bin_ws_hub&#xff40;、&#xff40;ws_up/ws_down&#xff40;、&#xff40;TI&#xff40;三列数据&#xff0c;其中TI的大小用作颜色显色。 # 重新加载Excel文件 data_3d_new pd.read_excel(/mnt/da…

ORA-03113:通信通道的文件结尾-完美解决方案

oracle 文档中对这个错误这样解释&#xff1a; ORA-03113 错误就是说连接到数据库的网络中断了。有些错误由于频繁出现、原因复杂而被 Oracle DBA 们戏称之为"经典的错误"。 完美解决方案&#xff1a; 1、查看系统表空间用量&#xff1a; SELECTa.tablespace_name…

220V转12V芯片-交流45v-265v输入,固定12v输出峰值电流600MA

标题&#xff1a;220V转12V芯片&#xff0c;实现宽电压输入和固定12V输出 摘要&#xff1a;本文介绍了一款具备宽电压输入范围&#xff08;45V-265V&#xff09;和固定12V输出的220V转12V芯片。该芯片内置了650V高压MOS管&#xff0c;并通过CS电阻调节输出电流&#xff0c;最大…

在已知的二维坐标里找到最接近的点

一、业务场景 最近在研发的项目&#xff0c;在做可视化层&#xff0c;在全球地图上&#xff0c;对我们的国家的陆地地图经纬度按照步长为1的间隔做了二维处理。在得到一组整数的点位信息后&#xff0c;需要将我们已有的数据库数据(业务项目)按照地址的经纬度&#xff0c;映射到…

如何使用ArcGIS Pro自动矢量化道路

对于已经制作好的电子地图&#xff0c;我们可以通过像素识别的方式将其中的要素提取出来&#xff0c;比如本教程要讲到的道路数据&#xff0c;这里为大家介绍一下在ArcGIS Pro中如何自动矢量化道路&#xff0c;希望能对你有所帮助。 栅格计算 在工具箱中点击“Spatial Analys…

全国职业技能大赛云计算--高职组赛题卷⑤(容器云)

全国职业技能大赛云计算--高职组赛题卷⑤&#xff08;容器云&#xff09; 第二场次题目&#xff1a;容器云平台部署与运维任务2 基于容器的web应用系统部署任务&#xff08;15分&#xff09;任务3 基于容器的持续集成部署任务&#xff08;15分&#xff09;任务4 Kubernetes容器…