一.吸顶楼层

效果图:

功能思路分析:

1. 面向对象框架

2. 渲染导航

\1. 数据

\2. 对象结构的数据用for in遍历

\3. 渲染时将属性名设为锚点(a标签的href)

3. 渲染车系

\1. 车系分类是对象的数据结构,外层渲染用for in

\2. 每个分类的内容是数组的数据结构,内层渲染map().join(‘’)

\3. 渲染时将每个字母的分类设为id名,配合导航里的锚点

4. 导航吸顶

\1. 绑定滚动事件(window.addEventListener(‘scroll’,fn))

\2. 获取滚动距离( document.documentElement.scrollTop || document.body.scrollTop)

\3. 判断滚动距离是否大于导航的offsetTop

\4. 是则变成固定定位( fixed ),否则取消固定定位(static)

5. 楼层滚动

\1. 滚动事件中,拿到每一层楼的offsetTop 跟 滚动距离比较

\2. 滚动距离大于楼层的offsetTop则当前楼层对应的导航高亮

#二.星级评分

效果图:

功能思路分析:

1. 面向对象框架

2. 星级评分

\1. 为所有的小星星绑定mouseover事件:

\2. 将经过的那一个及之前的所有小星星变为红色,将之后的小星星变为灰色

\3. 为所有的小星星绑定mouseout事件:

\4. 获取当前选中的星星的下标,获取父元素的自定义属性(getAttribute())

\5. 如果有选中的小星星,则将选中星星及之前的小星星显示为红色,之后的显示为灰色

\6. 如果没有选中的小星星,则将所有的小星星变为灰色

\7. 为所有的小星星绑定click事件:

\8. 将点击的那一个及之前的所有小小变为红色,将之后的小星星变为灰色

并给父元素添加一个自定义属性(setAttribute()),存储点击的这颗小星星的下标

3. 选中标签

点击标签,选中高亮,再次点击取消选中状态**(classList.toggle())**

4. 添加标签

\1. 点击提交按钮,创建节点( document.createElement() )

\2. 设置内容为文本框的value值

\3. 追加到ul中**(添加节点appendChild() )**

5. 字数统计功能

1. 给文本框绑定input事件

\2. 获取它的value值,将value用正则将汉字替换成两个单字节字符,replace(/[\u4e00-\u9fa5]/g,‘aa’)

\3. 替换后获取字符的个数,即length

\4. 用140-length为还可以输入的字数显示到页面中

#三.今日小结

\1. 滚动事件: **window.addEventListener( ** ‘scroll’)

\2. 滚动距离: document.documentElement.scrollTop || document.body.scrollTop

\3. 鼠标事件**: mouseover滑过 mouseout离开**

\4. 中文正则: /[\u4e00-\u9fa5]/

\5. 创建节点: document.createElement()

\6. 追加节点: 父元素.appendChild()

#四.作业 -- 购物车

效果图:

功能思路分析:

1. 模拟数据

2. 渲染数据

3. 产品数量加减

通过事件委托给购物车大盒子绑定点击事件,判断事件源,实现商品数据加减,商品数量加减的同时,后面的小计跟着变化

4. 商品选中

单个商品选中后计算总计

5. 总计方法

\1. 封装一个总计方法

\2. 拿到所有被选中的商品的数量累加在一起

\3. 拿到所有被选中的商品的价格累加在一个

\6. 删除商品

点击商品后面的删除能够删除商品

js下 Day19、综合案例的更多相关文章

  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. Guitar Pro吉他指弹入门——日式指弹的pm技巧

    在上一篇指弹的文章中,笔者向大家介绍了一下美式指弹,以及他独树一帜的三指法.那么这一期的文章,我将介绍另一个指弹界的大流派--日式指弹,日式指弹曲子向来以细腻而多变的情绪以及表达出来的艳丽色彩著称,今 ...

  2. nginx学习sub_filter模块

    用户替换html中的字符 location / { root /opt/app/code/; random_index on; index index.html index.htm; sub_filt ...

  3. 【电子取证:镜像仿真篇】Windows Server镜像仿真、vmdk镜像仿真

    Windows Server镜像仿真.vmdk镜像仿真 时间过得真快呀!--[suy999] Windows Server镜像仿真.vmdk镜像仿真 一.qemu-img镜像转换工具 (一)raw.q ...

  4. C语言讲义——冒泡排序(bubble sort)

    冒泡排序三步走: 循环 交换 回一手 一个数和其它数比较(循环) 每个数都要做这种比较(再一层循环) 准备工作 #include <stdio.h> void sort(int arr[] ...

  5. H3CNE认证(题库)

    H3CNE考试的题库,均为发烧友收集的,拥有将近认证考试的百分之八十五的题,但答案不具备官方性,但是题库具有解析. https://huxiaoyao.lanzous.com/b01tr2skd 密码 ...

  6. 交换机三种端口模式Access、Hybrid和Trunk

    以太网端口有 3种链路类型:access.trunk.hybird 什么是链路类型? vlan的链路类型可以分为接入链路和干道链路. 1.接入链路(access link)指的交换机到用户设备的链路, ...

  7. 16.java设计模式之迭代器模式

    基本需求: 展示一个学校的结构,比如一个学校下面有多个学院,学院下面有多个系,对其节点主要是遍历,与组合模式略有不同 传统方案: 学校<-学院<-系 依次继承 这种方式,在一个页面中展示出 ...

  8. GoLang 自学系列(二)—— defer

    defer 关键字 首先来看官网的定义: A "defer" statement invokes a function whose execution is deferred to ...

  9. pom文件中<dependencies>和<dependencyManagement>的区别

    在父pom中,如果使用了<dependencies>标签,那么在该标签体中的所有jar包,即使子工程中没有写这些依赖,依旧会引用. 如果使用了<dependencyManagemen ...

  10. Log4net 的 ASP.NET Core 扩展库

    给大家安利一款 log4net 的 ASP.NET Core 扩展库,它是基于 log4net 开发的. 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现服务的注册和消费.直接 ...