一.垃圾分类

效果图:

功能思路分析:

1. 鼠标按下

(1) 获取鼠标到元素的距离(e.offsetX)

(2) 开启开关变量

(3) 获取事件源

(4) 记录垃圾初始位置

​ 

2. 鼠标移动

(1) 当开关变量为真时,修改垃圾的位置即的left和top

(2) 垃圾位置 = 鼠标位置到页面位置 - 鼠标到盒子的位置

3. 鼠标抬起

(1) 关闭开关变量

(2) 循环每一个垃圾桶,通过 getBoundingClientRect()方法获取垃圾桶的四个边界,判断鼠标是否进入垃圾桶

(3) 如果进入垃圾桶,再利用indexOf()检测垃圾和垃圾桶的title值

(4) 为真则删除垃圾,为假则回到原地( 鼠标按下时记录的初始位置 )

#二.仿苹果菜单

效果图:

img

功能思路分析:

1. 封装获取两点之间距离方法

img

(1) 利用勾股定理求斜边: 直角边的平方和 = 斜边的平方

(2) 求平方用Math.pow( a,2) , 开根号用Math.sqrt(c)

2. 封装获取元素中心点方法

(1) 通过getBoundingClientRect()方法拿到元素的位置尺寸信息

(2) 中心点:即 元素的left + 元素的width/2

3. 图标放大

(1) 循环每一个图标,调用imgCenter()方法拿到每一个图标的中心点

(2) 调用getPos()方法获取鼠标到图片中心点的距离

(3) 设置一个临界点,当两点之间的距离小于临界点时,图片开始放大

(4) 图标放大即修改图标的宽度,在初始宽度的基础上放大

#三.今日小结

1.获取元素的尺寸和位置信息:元素. getBoundingClientRect()

2.勾股定理: 直角边的平方 = 斜边的平方

3.开方Math.pow(值,次方)

4.开根号Math.sqrt(值)

#四.作业--选项卡三级联动

效果图:

功能要求:

1. 渲染省份

(1) 对象的数据用for in,渲染时在标签中设置自定义属性保存编码

2. 渲染城市

(1) 点击省份渲染城市,拿到标签上的编码,通过**【】方式取数据**

(2) 对象的数据用for in,渲染时在标签中设置自定义属性保存编码

3. 渲染区县

(1) 点击城市渲染城市,拿到标签上的编码,通过**【】方式取数据**

4. 选项卡切换

(1) 点击菜单,切换菜单类名和对应省市区的类名进行显示隐藏

js下 Day12、案例的更多相关文章

  1. 原生JS下拉加载插件分享。

    无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...

  2. js下拉框

    Js下拉框   http://sc.chinaz.com/tag_jiaoben/XiaLaKuang.html

  3. chart.js图表库案例赏析,饼图添加文字

    chart.js图表库案例赏析,饼图添加文字 Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上.目前,它支持6种图表类型(折线图,条形图, ...

  4. CSS+JS下拉菜单和纯CSS下拉菜单

    下拉菜单 (思路:先把二级定位到屏幕外,鼠标悬停重新定位回来:另一个就是ul浮动,li也浮动) 下拉菜单的一般思路就是把子导航嵌套在无序列表中,把列表定位到屏幕之外,当鼠标悬停在其父列表项上时,重新定 ...

  5. 小议 js 下字符串比较大小

    原文:小议 js 下字符串比较大小 之前群里有人问如何比较两个时间大小,他的时间格式是 2014-08-08 而不是 2014-8-8.所以我给的方法是 直接比较,如: var a = "2 ...

  6. node.js 下依赖Express 实现post 4种方式提交参数

    上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ...

  7. npm 是node.js下带的一个包管理工具

    npm 是node.js下带的一个包管理工具          npm install -g webpack webpack是一个打包工具 gulp是一个基于流的构建工具,相对其他构件工具来说,更简洁 ...

  8. js调用ajax案例

    js调用ajax案例 测试地址:http://www.w3school.com.cn/tiy/t.asp?f=ajax_get 嵌入下面代码,点击提交,再点击请求数据.就可以看到结果了. <ht ...

  9. cookie.js插件的案例

    cookie.js插件的案例: https://github.com/jaywcjlove/cookie.js/blob/master/README.md    文档  api   在这里即可查看用法 ...

随机推荐

  1. Spark SQL | 目前Spark社区最活跃的组件之一

    Spark SQL是一个用来处理结构化数据的Spark组件,前身是shark,但是shark过多的依赖于hive如采用hive的语法解析器.查询优化器等,制约了Spark各个组件之间的相互集成,因此S ...

  2. 两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理

    前言 我自己是本科毕业后在老东家干了两年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找 ...

  3. SpringBoot整合MyBatis,HiKari、Druid连接池的使用

    SpringBoot整合MyBatis 1.创建项目时勾选mybatis.数据库驱动.   mysql驱动默认是8.x的版本,如果要使用5.x的版本,创建后到pom.xml中改. 也可以手动添加依赖 ...

  4. 思维导图iMindMap可以在哪些领域应用

    生活工作中你常常会遇到许多力所不能及的事情,感到无奈.茫然,这时候你急需一个帮手来帮你打破困境,思维导图就是这样的救世主,至于它有哪些力所能及的事情就是下面小编要跟你讲的. 你是否经常遇到过这样的情况 ...

  5. 思维导图软件iMindMap怎么用模板制作思维导图

    随着思维导图的不断发展,市场上相关的软件也越来越多.像XMind.MindManager等.每一款软件都有它独特的亮点.作为众多思维导图软件中的一款,iMindMap算是比较亮眼的了.现在很多人都在用 ...

  6. python中eval()和json.loads的区别

    一.最近在写接口测试脚本时,发现当读取Excel用例时,有时候要用eval,有时候又要用json.loads,不知道区别,只能换一下就可以用了,不知道其中的原理,特地百度了下.于是就记录了下,以便后续 ...

  7. Shell编程规范:Don't use ls | grep

    目录 一.背景 二.ShellCheck的规范 三.修改写法 1.ls | grep file 2.ls | grep regexp 3.ls | grep -v multi 四.最后 五.参考 一. ...

  8. appium服务器参数

    appium服务器初始化参数 Appium服务器初始化参数(功能) 设置能力 能力参数项 获取appPackage与appActivity 查看当前活动名称 使用uiautomatorviewer定位 ...

  9. ModelSim入门

    verilog设计进阶 时间:2014年5月5日星期一 主要收获: 1. 安装了ModelSim ALTERA 6.4a; 2. 熟悉基本流程,仿真成功: 3. 了解testbench语法基本. 为什 ...

  10. 如何破解QQ闪照

    1.如何下载 通过公主公众号 "全是软件" 然后输入 294 即可获得下载链接 https://qsrj.lanzous.com/iU4Hddnnmne 目前的闪照破解工具只能破解 ...