js下 Day18、综合案例
一.分页
效果图:
功能思路分析:
分页就是将所有的数据按指定条数分成若干份: 假如有24条数据,每页只显示5条,则需要分成Math.ceil(24 / 5) = 5页; 每次只显示1页数据,所以需要在总数据中利用slice截取出1页数据渲染
每一页的数据分布如下:
第一页: 显示1 - 5条数据 截取 data.slice(0,5)
第二页: 显示6 - 10条数据 截取 data.slice(5,10)
第三页: 显示11 - 15条数据 截取 data.slice(10,15)
总结:
截取数据的开始下标为 : **( ** 页码-1)*条数
截取数据的结束下标为 : 开始下标+条数
1. 面向对象框架
2. 数据渲染
\1. 封装一个render()方法写渲染,每次渲染的数据不同,通过传参获取
\2. 通过**map().join(‘’)**渲染到指定盒子中
**3. ** 页码渲染
1.封装一个**renderPage()**方法,拿到总页码,总页码 = 数据总条数/每页条数
2.使用for循环渲染页码
3.设置当前页码高亮
**4. ** 页码切换
1.在各种事件中,都需要根据截取的数据,重新调用渲染数据和渲染页码方法,所以封装一个公用的use方法集中调用
2.给页码大盒子绑定点击事件,利用事件委托找到每一个切换分页按钮
3.点击下一页,当前页码++,最大限定,调用渲染方法,传递下一页数据
4.点击上一页,当前页码--,最小为1,调用渲染方法,传递上一页数据
5.点击分页器,当前页码 = 事件源.innerHTML,调用渲染方法,传递数据
5. 条数切换
给条数下拉列表绑定change事件,改变后重新调用渲染,修改当前页码为1
6. 排序
1.给排序下拉列表绑定change事件,使用sort()方法进行排序
2.根据下拉列表的value值进行排序
3.等级是字母需要利用charCodeAt()转码后排序
4.排序后重新调用渲染方法
7. 模糊搜索
\1. 给文本框绑定失去焦点事件blur,根据文本框的内容去筛选数据(filter())
\2. 根据筛选后的数据重新调用渲染方法
#二.今日小结
\1. 分页中截取数据的开始下标为 : **( ** 页码-1)*条数
\2. 分页中截取数据的结束下标为 : 开始下标+条数
\3. 分页中获取页码: Math.ceil(总条数/每页条数)
\4. 数组方法: **filter() ** 筛选 slice()截取 sort()排序
\5. 查找字符串返回布尔值: includes()
#三.作业 -- 楼层
效果图:
功能思路分析:
\1. 自己模拟数据,渲染菜单和列表(每道菜的信息需要包括:图片,标题,价格)
\2. 点击每一道菜出现弹窗,弹窗内显示对应的图片、菜名和价钱(渐隐渐现的动画效果,通过修改opacity实现)
\3. 弹框是用面向对象封装好的,此处只需要new实例化调用
\4. 点击价格,按照价格从高到低对数据进行排序(sort())
\5. 再次点击,按照价格从低到高进行排序
js下 Day18、综合案例的更多相关文章
- JS 下拉菜单案例
css代码 .nav { width: 300px; height: 400px; list-style: none; padding:; margin: 0 auto; } .nav>li { ...
- js下 Day12、案例
一.垃圾分类 效果图: 功能思路分析: 1. 鼠标按下 (1) 获取鼠标到元素的距离(e.offsetX) (2) 开启开关变量 (3) 获取事件源 (4) 记录垃圾初始位置 2. 鼠标移动 ( ...
- js下 Day11、案例
一.成绩分类 效果图: 功能思路分析: 1. 渲染数据 2. 鼠标按下开启拖拽 \1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽 \2. 开启控制拖拽的变量 \3. ...
- Ext.js入门:常用组件与综合案例(七)
一:datefield简单示例 二:timefield简单示例 三:numberfield简单示例 四:FormPanel提交 datefield简单示例: <html xmlns=&quo ...
- js上 二十、综合案例
二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...
- js上 十九、综合案例
十九.综合案例 题目一: 封装一个函数equal(a1,a2),传入两个一维数组,判断两个数组是否包含相同的元素,如果相等,函数的返回值为true, 不相等,函数的返回值为false 1)例:arr1 ...
- JavaScript:综合案例-表单验证
综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须 ...
- 黑马eesy_15 Vue:04.综合案例(前端Vue实现)
黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...
- JQuery:JQuery基本语法,JQuery选择器,JQuery DOM,综合案例 复选框,综合案例 随机图片
知识点梳理 课堂讲义 1.JQuery快速入门 1.1.JQuery介绍 jQuery 是一个 JavaScript 库. 框架:Mybatis (jar包) 大工具 插件:PageHelper (j ...
随机推荐
- C++中内存布局 以及自由存储区和堆的理解
文章搬运自https://www.cnblogs.com/QG-whz/p/5060894.html,如有侵权请告知删除 当我问你C++的内存布局时,你大概会回答: "在C++中,内存区分为 ...
- SpringSecurity了解
在web开发中,安全第一位!!过滤器.拦截器~ 属于非功能性需求. 做网站:安全应该在什么时候考虑?设计之初!! 漏洞,隐私泄露~ 假设架构一旦确定~ shiro和SpringSecurity的区别: ...
- MyBatis学习01
1.初识MyBatis 环境说明: jdk 8 + MySQL 5.7.19 maven-3.6.1 IDEA 学习前需要掌握: JDBC MySQL Java 基础 Maven Junit 什么是M ...
- ABBYY FineReader 15 安装教程
ABBYY FineReader 是一款出名的OCR文字识别工具,它包含文档转换.数据捕获等功能,文字识别率较高.能够带来快速.简单.易用的文字识别体验,从而提高工作效率.下面就为大家讲解ABBYY ...
- 怎么在Word上编辑数学公式?教你一招
在日常工作中我们常常会用到word来编辑文字.但是有时候也免不了要输入一些公式,尤其是数学.物理还有化学方面等较复杂的公式.这时候用word来编辑的话会很麻烦,很难编辑出来,那该怎么办呢? 我们都知道 ...
- [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理
[从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 目录 [从源码学设计]蚂蚁金服SOFARegistry网络操作之连接管理 0x00 摘要 0x01 业务领域 1.1 应用场景 0x ...
- Java 在Excel中添加分离型饼图、环形图
一.概述 Excel中可支持多种不同类型的图表,本文介绍如何绘制分离型饼图和环形图.其中,分离型饼图的绘制可分为整体分离型(即设置饼图分离程度)和局部分离(即设置点爆炸型值)两种情况.下面将以Java ...
- Centos7.2 安装docker、mysql和redis
环境信息 Docker是什么? Docker就是一个平台,这个平台具备开发.发布和运行应用程序的功能,在项目生命周期中,我们可以运用Docker实现快速交付.测试和部署.Docker通过将运行环境打包 ...
- [翻译自官方]什么是RDB和AOF? 一文了解Redis持久化!
概述 本文提供Redis持久化技术说明, 建议所有Redis用户阅读. 如果您想更深入了解Redis持久性原理机制和底层持久性保证, 请参考文章 揭秘Redis持久化: http://antire ...
- 冲刺Day5
每天举行站立式会议照片: 前后端交互: 昨天已完成的工作: 1.确认搜索栏界面 2.订单模块的大部分代码 3.用户模块的大部分代码 4.测试登录注册功能 燃尽图: 今天计划完成的工作: 成员 任务 高 ...