一.分页

效果图:

功能思路分析:

分页就是将所有的数据按指定条数分成若干份: 假如有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、综合案例的更多相关文章

  1. JS 下拉菜单案例

    css代码 .nav { width: 300px; height: 400px; list-style: none; padding:; margin: 0 auto; } .nav>li { ...

  2. js下 Day12、案例

    一.垃圾分类 效果图: 功能思路分析: 1. 鼠标按下 (1) 获取鼠标到元素的距离(e.offsetX) (2) 开启开关变量 (3) 获取事件源 (4) 记录垃圾初始位置 ​  2. 鼠标移动 ( ...

  3. js下 Day11、案例

    一.成绩分类 效果图: 功能思路分析: 1. 渲染数据 2. 鼠标按下开启拖拽 \1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽 \2. 开启控制拖拽的变量 \3. ...

  4. Ext.js入门:常用组件与综合案例(七)

    一:datefield简单示例 二:timefield简单示例 三:numberfield简单示例 四:FormPanel提交   datefield简单示例: <html xmlns=&quo ...

  5. js上 二十、综合案例

    二十.综合案例 题目一: **1. ** 数组随机 描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据 用例: randomArray([ ...

  6. js上 十九、综合案例

    十九.综合案例 题目一: 封装一个函数equal(a1,a2),传入两个一维数组,判断两个数组是否包含相同的元素,如果相等,函数的返回值为true, 不相等,函数的返回值为false 1)例:arr1 ...

  7. JavaScript:综合案例-表单验证

    综合案例:表单验证 开发要求: 要求定义一个雇员信息的增加页面,例如页面名称为"emp_add.htmnl",而后在此页面中要提供有输入表单,此表单定义要求如下: .雇员编号:必须 ...

  8. 黑马eesy_15 Vue:04.综合案例(前端Vue实现)

    黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...

  9. JQuery:JQuery基本语法,JQuery选择器,JQuery DOM,综合案例 复选框,综合案例 随机图片

    知识点梳理 课堂讲义 1.JQuery快速入门 1.1.JQuery介绍 jQuery 是一个 JavaScript 库. 框架:Mybatis (jar包) 大工具 插件:PageHelper (j ...

随机推荐

  1. zookeeper和kafka的leader和follower

    来源于:https://www.cnblogs.com/aspirant/p/9179045.html 一.zookeeper 与kafka保持数据一致性的不同点: (1)zookeeper使用了ZA ...

  2. 关于AOP思想,建议你看看这份五年开发总结的笔记,写的太详细了

    前言 OOP(Object Oriented Programing)面向对象编程 以对象为基本单位进行程序开发,通过对象间的彼此协同,相互协调,完成程序的构建 POP(Producer Oriente ...

  3. OCR之前这些因素必须考虑到!

    用久了ABBYY FineReader 14OCR文字识别软件,相信大家都知道图像质量对OCR质量有很大的影响,本文将给大家讲解下在识别图像之前,有哪些因素需要考虑到! 1.OCR语言 ABBYY F ...

  4. 系统兼容软件CrossOver和虚拟机软件,哪个好用?

    想要在Mac上运行Windows软件的方法有很多种,比较常见的有安装双系统以及虚拟机.但是安装双系统会导致一个很大的问题,就是占用了过多的硬盘空间,这样一来会导致可使用的空间减少. 目前来说,大家都不 ...

  5. Improving Commonsense Question Answering by Graph-based Iterative Retrieval over Multiple Knowledge Sources —— 基于多知识库迭代检索的常识问答系统

    基于多知识库迭代检索的问答系统 论文地址 背景 常识问答任务需要引入外部知识来帮助模型更好地理解自然语言问题,现有的解决方案大都采用两阶段框架: 第一阶段 -- 从广泛的知识来源中找到与给定问题相关的 ...

  6. 浅尝 Elastic Stack (四) Logstash + Beats 读取 Spring Boot 日志

    一.Spring Boot 日志配置 采用 Spring Boot 默认的 Logback: <?xml version="1.0" encoding="UTF-8 ...

  7. flask基本使用

    一.flask安装以及启动 1.安装 pip install flask 2.开启第一个flask项目 新建文件HelloWord.py from flask import Flask app = F ...

  8. 区块链知识博文1: 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

    注:这是本人读到的关于共识算法最全和最好的分享博文,系统的介绍了拜占庭容错技术以及共识算法的原理和常用共识算法,原文链接请见后. 目录 一.拜占庭容错技术(Byzantine Fault Tolera ...

  9. 老猿学5G随笔:5G核心网中与用户数据相关的NF功能体UDM、AUSF、PCF、UDR

    在业务支撑工作中,与核心网主要的交互包括用户数据管理(含签约关系.策略数据),5G核心网中与用户数据相关的NF功能体包括UDM.AUSF和PCR以及UDR,在此只简单介绍这些NF的功能: UDM:统一 ...

  10. Python中使用“模块名.__all__”查看模块建议导出的属性

    在<第10.5节 使用__all__定义Python模块导入白名单>中,老猿介绍了在自定义模块中使用定义__all__属性来提供模块对外可见的白名单,使用该机制除了可以定义访问的白名单外, ...