js下 Day07、DOM案例
一.折叠菜单
效果图:
功能思路分析:
功能一:数据渲染
\1. 模拟数据,一级数据为数组套对象的形式,二级数据为数组;
\2. 先渲染一级数据,然后再嵌套渲染二级数据(map().join(‘’));
功能二:子菜单的显示隐藏
\1. 定义一个初始下标index = 0;
\2. 给每一个一级菜单绑定点击事件,点击一级菜单时要干三件事:
(1) 上一个二级菜单隐藏
(2) 修改为当前点击项的下标
(3) 当前点击项的二级菜单显示
#二.留言板
效果图:
功能思路分析:
功能一:头像高亮
\1. 给每一个头像绑定点击事件,通过active类名的切换实现头像高亮显示
\2. 记录图片路径,后面发表留言要用。
功能二: 发表留言
\1. 点击广播按钮发布留言,但是需要满足二个条件才能发表留言:
(1) 用户名文本框必须有内容( user.value.trim().length > 0 )
(2) 内容框文必须有内容( user.value.trim().length > 0 )
\2. 以上条件为真后要做的事情
(1) 调用发表留言的方法
(2) 调用初始化方法(清空文本框等)
(3) 发表成功数量加1
功能三:删除留言
\1. 在留言发表成功后调用删除留言的方法( 动态创建的元素必须在创建之后才能找到 );
\2. 找到删除按钮,绑定点击事件,将整条评论删除( removeChild() )
功能四:统计字数
通过input事件监听内容文本框的输入,剩余字数 = 总字数 - 文本框内容长度
#三.今日小结
1.监听文本框输入事件: input
2.类名的添加和删除: classList.add() classList.remove()
3.节点的创建和删除: document.appendChild() document.removeChild()
4.下一个元素兄弟: nextElemenSibling
5.DOM2级事件绑定: **addEventListener( ** ‘事件类型’,function(){})
#四.作业 -- 三级菜单
效果图:
功能要求:
\1. 鼠标经过菜单高亮显示,具体样式参考录屏演示
\2. 点击+号可以展开(显示)子菜单
\3. 点击-号可以折叠(隐藏)子菜单
\4. 注意展开与折叠时找到对应关系,点击一级菜单,二级菜单发生切换,点二级三级子菜单发生切换
js下 Day07、DOM案例的更多相关文章
- 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. ...
- JS对象与Dom对象与jQuery对象之间的区别
前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save&qu ...
- js中的DOM操作汇总
一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...
- js 字符串转dom 和dom 转字符串
js 字符串转dom 和dom 转字符串 博客分类: JavaScript 前言: 在javascript里面动态创建标准dom对象一般使用: var obj = document.createE ...
- NPM酷库:jsdom,纯JS实现的DOM
NPM酷库,每天两分钟,了解一个流行NPM库. 昨天认识了一个在Node.js环境下操作HTML的库 cheerio,cheerio实现了jQuery接口,用起来十分方便.为什么不直接用jQuery呢 ...
- z-tree官方提供的下拉菜单案例
1.z-tree官方提供的下拉菜单案例 <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - selec ...
- 前端(十六)—— JavaScript盒子模型、JS动画、DOM、BOM
JS盒子模型.JS动画.DOM.BOM 一.JS盒模型 1.width | height parseInt(getComputedStyle(ele, null).getPropertyValue(' ...
随机推荐
- Mate 40系列发布 搭载华为运动健康服务带来健康数字生活
10月30日,HUAWEI Mate 40系列国内发布会如期而至.Mate 40系列除了拥有强悍的性能.全能记录影像和突破性的交互之外,还搭载了全新升级的HMS Core,其中,Health Kit( ...
- MathType输入几何符号的技巧
通过学习几何学的知识,我们发现其中包含的几何符号有很多,比如有表示图形的符号,如三角形,平行四边形,圆,角,圆弧等:还有表示位置关系的符号,如平行,垂直等:还有表示矢量等其他符号,那么MathType ...
- 如何修改IDM下载器的临时文件夹位置
所有的应用程序在下载时,都会有一些默认的选项.比如产生的临时文件存放在C盘目录下,或者定期自动更新等设置.那么当我们的计算机上安装了很多程序之后,C盘的空间就会渐渐地变小了,从而有了空间不足等等情况, ...
- FL studio系列教程(五):FL Studio20自带的效果器Fruity Delay3功能
作为音乐编曲常用软件之一的FL Studio20,在国内外都有着很多真爱粉,当然,在国内我们一般都叫它水果音乐制作软件,或者直接叫"水果".它有丰富的内置插件于音源,想要用好这些插 ...
- Calling unknown method: app\modules\mobile\controllers\CompanyController::redirect()
$this->redirect(['default/error']); Yii::$app->end();上边的代码出现 Calling unknown method: app\modul ...
- JQuery案例:购物车加减
购物车加减 <head> <meta charset="UTF-8"> <title>加减购物车</title> <style ...
- C语言精华——内存管理,很多学校学习不到的知识~
在编写程序时,通常并不知道需要处理的数据量,或者难以评估所需处理数据量的变动程度.在这种情况下,要达到有效的资源利用--使用内存管理,必须在运行时动态地分配所需内存,并在使用完毕后尽早释放不需要的内存 ...
- mybatis-plus使用记录
如何and和or: QuoteSalaryEnum salaryMax = QuoteSalaryEnum.of(memberObjectInfo.getQuoteSalaryMax()); Quot ...
- 如何测试一个APP
1.是否支持各种手机系统 2.是否会因为分辨率而出错 3.不同机型能否安装 4.老旧机型 能否通用 5.广告时长 6.测试能否登陆注册 7.卸载时是否会发生意外 8.安装时会不会误认为带病毒 9.用户 ...
- 2、Spring Cloud和dubbo简介
1.Spring Cloud简介 (1).Spring Cloud简介 SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负 ...