一.折叠菜单

效果图:

功能思路分析:

功能一:数据渲染

\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案例的更多相关文章

  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. JS对象与Dom对象与jQuery对象之间的区别

    前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save&qu ...

  5. js中的DOM操作汇总

    一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...

  6. js 字符串转dom 和dom 转字符串

    js 字符串转dom 和dom 转字符串 博客分类: JavaScript   前言: 在javascript里面动态创建标准dom对象一般使用: var obj = document.createE ...

  7. NPM酷库:jsdom,纯JS实现的DOM

    NPM酷库,每天两分钟,了解一个流行NPM库. 昨天认识了一个在Node.js环境下操作HTML的库 cheerio,cheerio实现了jQuery接口,用起来十分方便.为什么不直接用jQuery呢 ...

  8. z-tree官方提供的下拉菜单案例

    1.z-tree官方提供的下拉菜单案例 <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - selec ...

  9. 前端(十六)—— JavaScript盒子模型、JS动画、DOM、BOM

    JS盒子模型.JS动画.DOM.BOM 一.JS盒模型 1.width | height parseInt(getComputedStyle(ele, null).getPropertyValue(' ...

随机推荐

  1. ①SpringCloud 实战:引入Eureka组件,完善服务治理

    简介 Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能.Spring Cloud Eureka 是 Spring Cloud Netf ...

  2. 用CorelDRAW来制作产品结构图的方法

    一.产品结构图的重要性 随着我国经济不断的高速发展,大家的生活水平不断提高,我们将会在生活生产中越来越多的,遇到许多各种各样的生产产品和生活消费品.科技的飞速进步,更是使这些产品.消费品包含了很强的科 ...

  3. React Native两种加载图片的方式

    1 加载网络图片 通过uri就可以加载网络图片 <Image source={{uri:'http://facebook.github.io/react/img/logo_og.png'}} s ...

  4. Linux中配置环境变量

    Linux中环境变量的搭建(推荐用法) 第一步:进入到/etc/profile.d文件夹下 cd /etc/profile.d 第二步:创建并编辑一个my_env.sh文件 vim my_env.sh ...

  5. 自学linux——8.firewall-cmd的命令使用

    firewall-cmd使用方法 1.firewall-cmd的含义 firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7之后版本的一大特性, 最大的 ...

  6. Win搭建JAVA环境

    一:下载JDK 下载链接:https://www.oracle.com/java/technologies/javase-downloads.html 选择你的系统环境进行下载 二:安装JDK 直接运 ...

  7. CF980C Posterized

    先来吐槽一下这个 sb 翻译,根本就没做过题吧-- 大概就是让你给值域分成连续的几组,每组大小不能超过 \(k\),然后将序列中的值全部替换成其组内的最小值,要使得序列的字典序最小. 因为是字典序,所 ...

  8. Python爬虫入门(二)之Requests库

    Python爬虫入门(二)之Requests库 我是照着小白教程做的,所以该篇是更小白教程hhhhhhhh 一.Requests库的简介 Requests 唯一的一个非转基因的 Python HTTP ...

  9. Beta冲刺随笔——Day_Eight

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...

  10. Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件

    首先说一下,这里解决的问题应用场景: sparksql处理Hive表数据时,判断加载的是否是分区表,以及分区表的字段有哪些?再进一步限制查询分区表必须指定分区? 这里涉及到两种情况:select SQ ...