js下 Day08、DOM案例
一.摇一摇
效果图:
功能思路分析:
1. 功能一:页面切换
(1) 点击第一页的设置按钮,从第一页切换到第二页
(2) 点击第二页的返回按钮,从第二页切换到第一页
(3) 第二页的标题发生改变后,第一页的标题也跟着改变

2. 功能二:抽奖
(1) 点击”摇”时,从第二个页面拿到所有的内容进行随机抽奖,用**(setInterval())**显示抽奖过程
(2) 用**(setTimeout())**3秒后结束抽奖

3. 功能三:添加内容
(1) 点击加号按钮添加内容
(2) 1.创建节点( document.createElement() ) => 2.设置内容( innerHTML ) => 3.将创建的节点放在加号前面( 父元素.insertBefore() )

4. 功能四:删除内容
(1) 利用事件委托做删除功能,给大盒子绑定点击事件
(2) 判断**事件源(e.target.className)**是否为删除按钮,是的话则完成删除功能

#二.滚动弹幕
效果图:
功能思路分析:
1. 淡出隐藏
让第一个li的透明度**(opacity)为0**,过渡**(transition)时间500毫秒**

2. 向上滚动
(1) 当第一个动画效果完成后开始执行第二个动画效果,**(500 ** 毫秒之后执行setTimeout())。
(2) 让ul整体向上移动一个li的高度( marginTop ),过渡**(transition)时间500毫秒**

3. 无缝衔接
(1) 当以上两个动画效果完成后( 两次动画效果共用时1秒,1秒之后执行 )继续重复执行下一次滚动
(2) 将隐藏的li追加到ul的末尾(appendChild()),并显示( opacity = 1 )
(3) ul恢复初始位置,但需要清除过渡效果( 偷天换日,避免有向下滚动的bug )
(4) 无缝滚动重复执行,封装成函数反复调用

#三.今日小结
1.事件委托: 给大盒子绑定事件,判断事件源 e.target
2.类名添加删除: classList.add() classList.remove()
3.节点创建: document.createElement()
4.插入节点: 父元素.appendChild() 父元素.insertBefore()
5.定时器: setInterval() setTimeout()
#四.作业 -- 轮播留言板
效果图:
功能思路分析:
\1. 背景轮播
给body标签添加背景图,通过修改背景图的路径实现自动轮播
2. 显示弹框遮罩
点击添加按钮,显示遮罩和弹框,通过修改遮罩的display样式实现
\3. 隐藏弹框遮罩
点击弹框中取消按钮和XX按钮,隐藏遮罩
\4. 添加留言
(1) 点击弹框中提交按钮,发表留言
(2) 1.创建节点( document.createElement()) => 2.设置内容( innerHTML ) => 3.放入指定盒子( appendChild() )
\5. 删除留言
(1) 给留言区大盒子绑定点击事件,利用事件委托实现删除
(2) 判断**事件源(e.target.className)**是否为删除按钮,是则删除留言
js下 Day08、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(' ...
随机推荐
- Xrepo:一个现代化的跨平台 C/C++ 包管理器
xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器. 项目源码 官方文档 它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管 ...
- 打开WPS时出现MathType错误弹窗怎么办
MathType是一款特别优秀的公式编辑器,特别是在文档中出现大量的复杂数学公式需要编辑时.不过MathType与Office的兼容性还算好,与WPS的兼容性要略逊一筹,有时候会出现如下的报错弹窗.提 ...
- Echo Delay:FL中好用的声音制作处理方法
今天来一起研究FL Studio的Echo Delay的作用,Echo Delay可以从MIDI输入创建回声,并允许我们通过音量,声像,切除和共振,音高和时间来操纵延迟. 图1:Echo Dealy ...
- 使C语言实现面向对象的三个要素,你掌握了吗?
- 日期选择组件(DatePicker)的实现
一.效果图 日期选择组件大概长这样: 从效果图可以看出,日期选择组件由两部分组成:日历表格和顶部操作栏. 二.日历表格 日期选择组件的核心主体是日历表格: 可以将日历表格表示成一个7️*的二维数组,数 ...
- Java String 演进全解析
前言 String 是我们使用最频繁的对象,使用不当会对内存.程序的性能造成影响,本篇文章全面介绍一下 Java 的 String 是如何演进的,以及使用 String 的注意事项. 下面的输出结果是 ...
- java简单的实现搜索框的下拉显示相关搜索功能
最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 ...
- moviepy音视频剪辑:使用fl_time进行时间特效处理报错ValueError: Attribute duration not set
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使 ...
- PyQt(Python+Qt)学习随笔:使用实例方法赋值方式捕获事件
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在<第15.17节 PyQt(Python+ ...
- 第14.11节 Python中使用BeautifulSoup解析http报文:使用查找方法快速定位内容
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>介绍了BeautifulSoup对象的主要属性,通过这些属性可以访 ...