技术心得:实现“换一批”类的效果

简介: 技术心得:实现“换一批”类的效果

需求:点击换一批,显示下一页的优惠券。


功能:动态配置几个元素为一组。


原理:点击换一批的时候,记录点击的次数和需要截取的每组数据基数。然后添加到页面中。


代码:


优惠券


ul, li {


margin: 0;


padding: 0;


list-style: //代码效果参考:http://www.lyjsj.net.cn/wx/art_23518.html

none;

overflow: hidden;


}


.list {


width: 100px;


height: 40px;


float: left;


background: darkorange;


margin-right: 20px;


color: #fff;


text-align: center;


line-height: 40px;


cursor: pointer;


}


div {


width: 100%;


text-align: right;


cursor: pointer;


}


换一批


function CouponArray() {


//默认的数据


this.couponList = 【】;


// 截取后的新数据


this.couponNewList = 【】;


// 拼接字符串变量


this.couponStr = "";


// 截取第几组的开始参数


this.timeStart = 0;


// 截取//代码效果参考:http://www.lyjsj.net.cn/wz/art_23516.html

第几组的结束参数

this.timeEnd = 1;


//默认为0组


this.group = 0;


//默认5个为一组,可以根据需求修改。


this.num = 5;


//点击的次数


this.clickNum = 0;


// 计算数据的长度,共分为几组,如果不能整除则加1


this.listLen = listLen;


//计算将点击次数和开始截取的参数清空


this.clear = clear;


//动态添加数据结构


this.render = render;


//每点击一次,记录次数


this.autoIncre = autoIncre;


}


function listLen() {


var len = this.couponList.length;


this.group = len / this.num;


if (len % this.num != 0) {


this.group = parseInt(this.group) + 1;


}


}


function autoIncre() {


this.clickNum++;


this.timeStart++;


this.timeEnd++;


}


function clear() {


//如果点击此时大于当前数据的组数,则重新开始计数。


if (this.clickNum > this.group - 1) {


this.timeStart = 0;


this.timeEnd = 1;


this.clickNum = 0;


}


}


function render() {


this.couponStr = "";


//截取当前每组的数据


this.couponNewList = this.couponList.slice(this.num this.timeStart, this.num this.timeEnd);


for (var i = 0; i < this.couponNewList.length; i++) {


this.couponStr += "" + this.couponNewList【i】.name + ""


}


return this.couponStr;


}


const coupon_item = document.getElementById("coupon_item");


const exchange = document.getElementById("exchange");


const p = new CouponArray();


p.couponList = 【{name: "优惠券1"}, {name: "优惠券2"}, {name: "优惠券3"}, {name: //代码效果参考:http://www.lyjsj.net.cn/wz/art_23514.html

"优惠券4"}, {name: "优惠券5"}, {name: "优惠券6"}, {name: "优惠券7"}, {name: "优惠券8"}, {name: "优惠券9"}】;

let str = p.render();


coupon_item.innerHTML = str;


exchange.addEventListener("click", function () {


if(p.couponList.length>4&&p.couponList.length>p.num){


//点击的时候获取分为几组


p.listLen();


//每点击一次记录点击次数


p.autoIncre();


p.clear();


str = p.render();


coupon_item.innerHTML = str;


}else{


alert("没有更多优惠券了");


}


});


最后:这个需求是做项目的时候顺便就写下的,如果有更方便的方式,可以留言交流。

相关文章
|
消息中间件 安全 API
记项目的一次发送短信及短信模板配置分享
我们日常使用的软件或者网站,大部分都在使用短信业务,比如 注册 、 验证码功能 。还有一些特定的业务需要发送短信通知国内外用户等。有了需求就会有平台提供服务,国内有很多互联网公司都提供短信业务,比如阿里云、腾讯云、七牛。本次我们主要讲解的是阿里云提供的短信服务。
记项目的一次发送短信及短信模板配置分享
Axure高保真原型设计:移动端多选图片上传
本文介绍了如何在Axure中利用中继器实现移动端应用的多选图片上传功能,适用于如微信、微博等社交平台。文章详细描述了主页面、相册页面和大图页面的制作步骤,并展示了如何通过中继器和交互设置实现图片的选择、上传及删除等功能。此教程有助于提升用户体验和应用功能性。
380 9
|
6月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
551 3
|
域名解析 运维 网络协议
网络诊断指南:网络故障排查步骤与技巧
网络诊断指南:网络故障排查步骤与技巧
5185 7
|
11月前
|
存储 缓存 小程序
微信小程序数据缓存与本地存储:优化用户体验
本文深入探讨微信小程序的数据缓存与本地存储,介绍其意义、机制及应用场景。通过合理使用内存和本地缓存,可减少网络请求、提升加载速度和用户体验。文中详细讲解了常用缓存API的使用方法,并通过一个新闻列表案例展示了缓存的实际应用。最后提醒开发者注意缓存大小限制、时效性和清理,以确保最佳性能。
|
传感器 小程序 开发工具
【规范】小程序发布,『小程序隐私保护指引』填写指南
本文详细解析了小程序隐私保护指引的填写方法,包括开发者处理的信息、第三方插件信息、用户权益等内容,并提供了详细的填写范例,帮助读者在发布小程序时避免常见问题,是一份实用的参考指南。
1956 1
【规范】小程序发布,『小程序隐私保护指引』填写指南
|
机器学习/深度学习 人工智能 算法
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
本文全面介绍了人工智能(AI)的基础知识、操作教程、算法实现及其在实际项目中的应用。首先,从AI的概念出发,解释了AI如何使机器具备学习、思考、决策和交流的能力,并列举了日常生活中的常见应用场景,如手机助手、推荐系统、自动驾驶等。接着,详细介绍了AI在提高效率、增强用户体验、促进技术创新和解决复杂问题等方面的显著作用,同时展望了AI的未来发展趋势,包括自我学习能力的提升、人机协作的增强、伦理法规的完善以及行业垂直化应用的拓展等...
1882 3
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
|
存储 安全 Java
Java中使用加密盐
摘要(Markdown格式): 本文介绍了密码安全性中的加盐(Salt)技术,以对抗彩虹表攻击。彩虹表是预先计算的哈希值集合,能威胁到仅使用MD5等简单哈希的密码。加盐是在密码中加入随机字符串,提高破解难度。文章展示了Java代码示例,说明如何生成和验证加盐后的密码。使用Spring Security的BCryptPasswordEncoder也作为例子给出,它提供了内置的加盐和加密功能。即使密码相同,每次加盐后生成的密文都不同,增强了密码的安全性。
752 1
Java中使用加密盐
|
传感器 监控 C#
使用STM32实现一个简单的温湿度监控系统
使用STM32实现一个简单的温湿度监控系统
499 0
|
Java Spring 容器
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题
774 1