当前位置: 首页 > news >正文

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券,共有6种优惠券样式(参考了常见的优惠券),文本内容仅为示例,您可在此基础上调整为你想要的文本

预览效果

通过模拟数据,实现点击使用优惠券让其变为灰色的效果(模拟已使用效果)

我用的是uniapp来写的

源码直接到uniapp项目中直接运行就可以


<template><view class="content"><view class="yhq1" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList1" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view><view class="yhq2" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList2" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view><view class="yhq3" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList3" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view><view class="yhq4" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList4" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view><view class="yhq5" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList5" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view><view class="yhq6" :class="item.isUse ? 'use' : ''" v-for="(item, index) in yhqList6" :key="index"@click="click(item)"><view class="left">¥{{ item.price }}</view><view class="right"><view class="tit">{{ item.title }}</view><view class="desc"><view class="p">{{ item.time }}</view></view></view></view></view>
</template><script>
export default {data() {return {isUse: false, // 是否已使用yhqList1: [{isUse: false,title: '某某商品优惠券11',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券12',price: '100',time: '有效期至: 2025年10月1日'},],yhqList2: [{isUse: false,title: '某某商品优惠券21',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券22',price: '100',time: '有效期至: 2025年10月1日'},],yhqList3: [{isUse: false,title: '某某商品优惠券31',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券32',price: '100',time: '有效期至: 2025年10月1日'},],yhqList4: [{isUse: false,title: '某某商品优惠券41',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券42',price: '100',time: '有效期至: 2025年10月1日'},],yhqList5: [{isUse: false,title: '某某商品优惠券51',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券52',price: '100',time: '有效期至: 2025年10月1日'},],yhqList6: [{isUse: false,title: '某某商品优惠券61',price: '100',time: '有效期至: 2025年10月1日'},{isUse: false,title: '某某商品优惠券62',price: '100',time: '有效期至: 2025年10月1日'},],}},methods: {click(item) {console.log(item);uni.showToast({title: "使用优惠券",icon: "none"})item.isUse = true}}
}
</script><style>
.content {padding: 20rpx;
}.yhq1 {width: 100%;height: 100px;margin-top: 15px;background-image: linear-gradient(-225deg, #9EFBD3 0%, #57E9F2 48%, #45D4FB 100%);-webkit-mask: radial-gradient(circle at 20px 20px, #ff0000 20px, blue 0);-webkit-mask-position: -20px -20px;display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}.use {filter: grayscale(1);/*  
是CSS3中的一个滤镜功能,用于将元素的内容(如图像、文本或背景)转换为灰度图像。grayscale() 函数接受一个介于0%到100%之间的参数,该参数定义了图像从原始彩色转换为灰度的程度。
当参数为0% 时,图像保持原有的彩色状态,不进行任何灰度转换。
当参数为100% 时,图像完全转换为灰度,所有颜色信息都被去除。
在中间值(如50%)时,图像会是部分彩色和部分灰度的混合。
这里的 1 相当于100%,表示最大的灰度转换程度。
*/
}.left {width: 20%;font-size: 50rpx;font-weight: 700;color: #fff;
}.right .tit {font-size: 33rpx;color: #fff;font-weight: 600;
}.right .desc .p {font-size: 28rpx;color: #d8d8d8;margin-top: 10rpx;
}.yhq2 {width: 100%;height: 100px;margin-top: 15px;background-image: linear-gradient(-225deg, #FFE29F 0%, #FFA99F 48%, #FF719A 100%);-webkit-mask: radial-gradient(circle at 20px, #0000 16px, blue 0);display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}.yhq3 {width: 100%;height: 100px;margin-top: 15px;background-image: linear-gradient(to right, #fddb92 0%, #d1fdff 100%);-webkit-mask: radial-gradient(circle at 0, #0000 20px, blue 0),radial-gradient(circle at right, #0000 20px, blue 0);-webkit-mask-size: 51%;-webkit-mask-position: 0, 100%;-webkit-mask-repeat: no-repeat;display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}.yhq3 .left {width: 35%;height: 100%;display: flex;align-items: center;border-right: 1px dashed #fff;
}.yhq3 .right {width: 55%;text-align: center;
}.yhq4 {width: 100%;height: 100px;margin-top: 15px;
background-image: linear-gradient(to right, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%, #b49fda 79%, #7ac5d8 100%);-webkit-mask: radial-gradient(circle at 10px, #0000 10px, blue 0);-webkit-mask-position: -10px;-webkit-mask-size: 100% 30px;display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}.yhq5 {width: 100%;height: 100px;margin-top: 15px;
background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);-webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, blue 0);-webkit-mask-position: -20px -20px;-webkit-mask-size: 50%;display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}.yhq5 .left {width: 35%;height: 100%;display: flex;align-items: center;border-right: 1px dashed #fff;
}.yhq5 .right {width: 55%;text-align: center;
}.yhq6 {width: 100%;height: 100px;margin-top: 15px;background-image: linear-gradient(to right, #ff9569 0%, #e92758 100%);-webkit-mask: radial-gradient(circle at left center, transparent 20px, blue 20px);display: flex;justify-content: space-around;align-items: center;padding: 20rpx 30rpx 20rpx 50rpx;box-sizing: border-box;
}</style>

欢迎进群讨论前端内容 谢谢大家
在这里插入图片描述

相关文章:

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券&#xff0c;共有6种优惠券样式&#xff08;参考了常见的优惠券&#xff09;&#xff0c;文本内容仅为示例&#xff0c;您可在此基础上调整为你想要的文本 预览效果 通过模拟数据&#xff0c;实现点击使用优惠券让其变为灰色的效果&#xff08;模…...

【分布式技术】中间件-zookeeper安装配置

文章目录 安装部署1. 安装ZooKeeper2. 配置ZooKeeper3. 启动ZooKeeper服务器4. 使用ZooKeeper命令行客户端5. 使用ZooKeeper的四个基本操作6. ZooKeeper集群模式7. 安全和权限8. 监控和日志 相关文献 安装部署 在Linux环境中操作ZooKeeper通常涉及以下几个方面&#xff1a; 1…...

高等数学 7.6高阶线性微分方程

文章目录 一、线性微分方程的解的结构*二、常数变易法 方程 d 2 y d x 2 P ( x ) d y d x Q ( x ) f ( x ) (1) \cfrac{\mathrm{d}^2 y}{\mathrm{d}x^2} P(x) \cfrac{\mathrm{d}y}{\mathrm{d}x} Q(x) f(x) \tag{1} dx2d2y​P(x)dxdy​Q(x)f(x)(1) 叫做二阶线性微分方程。…...

LSP的建立

MPLS需要为报文事先分配好标签&#xff0c;建立一条LSP&#xff0c;才能进行报文转发。LSP分为静态LSP和动态LSP两种。 静态LSP的建立 静态LSP是用户通过手工为各个转发等价类分配标签而建立的。由于静态LSP各节点上不能相互感知到整个LSP的情况&#xff0c;因此静态LSP是一个…...

huggingface的数据集下载(linux下clone)

1. 安装lfs sudo apt-get install git-lfs 或者 apt-get install git-lfs 2. git lfs install git lfs install 3. git clone dataset包 第2&#xff0c;3步骤的截图如下&#xff1a;...

Java使用dom4j生成kml(xml)文件遇到No such namespace prefix: xxx is in scope on:问题解决

介绍addAttribute和addNamepsace: addAttribute 方法 addAttribute 方法用于给XML元素添加属性。属性&#xff08;Attributes&#xff09;是元素的修饰符&#xff0c;提供了关于元素的额外信息&#xff0c;并且位于元素的开始标签中。属性通常用于指定元素的行为或样式&#…...

深入探讨Java中的LongAdder:使用技巧与避坑指南

文章目录 一、什么是LongAdder&#xff1f;二、LongAdder的简单使用示例代码&#xff1a; 三、LongAdder的工作原理四、LongAdder的常见使用场景五、使用LongAdder时的注意事项&#xff08;避坑指南&#xff09;1. 不要滥用LongAdder2. sum()方法与精度问题3. 避免过度使用rese…...

【本科毕业设计】基于单片机的智能家居防火防盗报警系统

基于单片机的智能家居防火防盗报警系统 相关资料链接下载摘要Abstract第1章 绪论1.1课题的背景1.2 研究的目的和意义 第2章 系统总体方案设计2.1 设计要求2.2 方案选择和论证2.2.1 单片机的选择2.2.2 显示方案的选择 第3章 系统硬件设计3.1 整体方案设计3.1.1 系统概述3.1.2 系…...

C语言 动态数据结构的C语言实现单向链表-2

建立一个单向链表 在单向链表中查找节点---查找尾节点 在单向链表中查找节点 --- 查找第 n 个节点 向单向链表中插入一个节点 向单向链表的尾部插入一个节点 向单向链表中某节点后插入一个节点 向单向链表中插入一个节点 删除单向链表中的某一节点 链表 vs 数组 动态数据结构...

Github 2024-10-23C开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目10PLpgSQL项目1Redis - 内存数据库和数据结构服务器 创建周期:5411 天开发语言:C协议类型:BSD 3-Clause “New” or “Revised” Licen…...

ubuntu20.04 opencv4.0 /usr/local/lib/libgflags.a(gflags.cc.o): relocation报错解决

在一个只有ubuntu20.04的docker环境中配置opencv4.0.0, 什么库都没有&#xff0c;都要重新安装&#xff0c; 其他的问题在网上都找到了解决方案&#xff0c;唯独这个问题比较棘手&#xff1a; [ 86%] Linking CXX executable …/…/bin/opencv_annotation /usr/bin/ld: /usr/lo…...

android openGL ES详解——混合

一、混合概念 混合是一种常用的技巧&#xff0c;通常可以用来实现半透明。但其实它也是十分灵活的&#xff0c;你可以通过不同的设置得到不同的混合结果&#xff0c;产生一些有趣或者奇怪的图象。混合是什么呢&#xff1f;混合就是把两种颜色混在一起。具体一点&#xff0c;就…...

计网--物理层

目录 物理层的任务 1、常见概念 2、信道极限容量 3、传输介质 &#xff08;1&#xff09;导引型传输介质 &#xff08;2&#xff09;非导引型传输介质 4、信道复用技术 &#xff08;1&#xff09;频分 / 时分 复用 &#xff08;2&#xff09;波分复用WDM &#xff08;…...

算法的学习笔记—数组中的逆序对(牛客JZ51)

&#x1f600;前言 在算法和数据结构领域&#xff0c;"逆序对"是一个经典问题。它在数组中两个数字之间定义&#xff0c;若前面的数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。我们要做的就是&#xff0c;给定一个数组&#xff0c;找出数组中所有的逆…...

Golang | Leetcode Golang题解之第498题对角线遍历

题目&#xff1a; 题解&#xff1a; func findDiagonalOrder(mat [][]int) []int {m, n : len(mat), len(mat[0])ans : make([]int, 0, m*n)for i : 0; i < mn-1; i {if i%2 1 {x : max(i-n1, 0)y : min(i, n-1)for x < m && y > 0 {ans append(ans, mat[x…...

什么是全局污染?怎么避免全局污染?

全局污染&#xff08;Global Pollution&#xff09;是指在编程过程中&#xff0c;过度使用全局变量或对象导致命名冲突、代码可维护性下降及潜在错误增加的问题。在 JavaScript 等动态语言中&#xff0c;尤其需要关注全局污染的风险。 全局污染的影响 1. 命名冲突 3. 意外修改…...

C# 串口通信教程

串口通信&#xff08;Serial Communication&#xff09;是一种用于设备之间数据传输的常见方法&#xff0c;通常用于与外部硬件设备&#xff08;如传感器、机器人、微控制器&#xff09;进行通信。在 C# 中&#xff0c;System.IO.Ports 命名空间提供了与串口设备交互的功能&…...

PHP编程基础

PHP&#xff08;Hypertext Preprocessor&#xff0c;超文本预处理器&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;主要用于网页开发&#xff0c;同时也可以进行命令行脚本编写。以下是PHP编程的基础知识&#xff1a; 1. PHP文件结构 PHP文件通常以 .php 为扩…...

TwinCAT3下位机配置EAP通讯传递与接收变量

添加EAP设备 DEVICE中右键选择添加新项&#xff0c;添加EAP&#xff08;EtherCAT Automation Protocal&#xff09;选择Network Variables类型&#xff0c;如下图。 设置网络适配器来激活EAP&#xff0c;在Adapter中选择search&#xff0c;选择网络适配器后确定&#xff0c;…...

近似推断 - 期望最大化(EM)篇

前言 近似推断是统计学和机器学习中一个至关重要的领域&#xff0c;尤其在处理复杂模型和不完全数据时显得尤为重要。期望最大化&#xff08; Expectation Maximization \text{Expectation Maximization} Expectation Maximization&#xff0c;简称 EM \text{EM} EM&#xff0…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...