js下 Day12、案例
一.垃圾分类
效果图:

功能思路分析:
1. 鼠标按下
(1) 获取鼠标到元素的距离(e.offsetX)
(2) 开启开关变量
(3) 获取事件源
(4) 记录垃圾初始位置

2. 鼠标移动
(1) 当开关变量为真时,修改垃圾的位置即的left和top
(2) 垃圾位置 = 鼠标位置到页面位置 - 鼠标到盒子的位置

3. 鼠标抬起
(1) 关闭开关变量
(2) 循环每一个垃圾桶,通过 getBoundingClientRect()方法获取垃圾桶的四个边界,判断鼠标是否进入垃圾桶
(3) 如果进入垃圾桶,再利用indexOf()检测垃圾和垃圾桶的title值
(4) 为真则删除垃圾,为假则回到原地( 鼠标按下时记录的初始位置 )

#二.仿苹果菜单
效果图:
功能思路分析:
1. 封装获取两点之间距离方法
(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、案例的更多相关文章
- 原生JS下拉加载插件分享。
无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...
- js下拉框
Js下拉框 http://sc.chinaz.com/tag_jiaoben/XiaLaKuang.html
- chart.js图表库案例赏析,饼图添加文字
chart.js图表库案例赏析,饼图添加文字 Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上.目前,它支持6种图表类型(折线图,条形图, ...
- CSS+JS下拉菜单和纯CSS下拉菜单
下拉菜单 (思路:先把二级定位到屏幕外,鼠标悬停重新定位回来:另一个就是ul浮动,li也浮动) 下拉菜单的一般思路就是把子导航嵌套在无序列表中,把列表定位到屏幕之外,当鼠标悬停在其父列表项上时,重新定 ...
- 小议 js 下字符串比较大小
原文:小议 js 下字符串比较大小 之前群里有人问如何比较两个时间大小,他的时间格式是 2014-08-08 而不是 2014-8-8.所以我给的方法是 直接比较,如: var a = "2 ...
- node.js 下依赖Express 实现post 4种方式提交参数
上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ...
- npm 是node.js下带的一个包管理工具
npm 是node.js下带的一个包管理工具 npm install -g webpack webpack是一个打包工具 gulp是一个基于流的构建工具,相对其他构件工具来说,更简洁 ...
- js调用ajax案例
js调用ajax案例 测试地址:http://www.w3school.com.cn/tiy/t.asp?f=ajax_get 嵌入下面代码,点击提交,再点击请求数据.就可以看到结果了. <ht ...
- cookie.js插件的案例
cookie.js插件的案例: https://github.com/jaywcjlove/cookie.js/blob/master/README.md 文档 api 在这里即可查看用法 ...
随机推荐
- 还不懂java类加载机制的,建议看下这份阿里技术官总结的笔记!
类加载机制 把class文件加载到内存,并对数据进行校验,准备,解析,初始化,形成可以被虚拟机直接使用的字节码 类加载的时机(触发类的初始化) 使用new关键字实例化对象 读取一个类的静态代码块 使用 ...
- 实在是秒啊,我还从来没见过把Spring之AOP讲的这么通俗易懂的,安排!
Spring之AOP 什么是AOP? AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. ...
- 面试半年,凭借这份JVM面试题,我终于拿到了字节跳动的offer!
内存区域 虚拟机栈生命周期与线程相同,描述的是Java 方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存取局部变量表.操作数栈.动态链接.方法出口等信息本地方法栈与虚拟机栈作用相似,只 ...
- 记录一次tomcat问题排查记录:org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
最近项目升级jdk,从jdk7 升级到 jdk8,本地已经自测完成了,需要部署到测试环境,测试环境已经装好 jdk8 了,但是tomcat 的版本还是 7.不过,据我之前了解,tomcat7是可以运行 ...
- laravel数据填充
post表有这2个字段 填充20条数据, 执行 php artisan tinker 执行预览 factory(App\Post::class,20)->make(); 插入数据库 factor ...
- leetcode152. 乘积最大子序列
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数).示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6.示例 2:输入: ...
- J - Sushi 题解(期望dp)
题目链接 题目大意 给你n个盘子,每个盘子可能有1,2,3个披萨 你选到每个盘子的概率是一样的. 你如果选到空的盘子什么都不做 如果你选到有披萨的盘子则吃掉一个披萨 求吃完所有披萨的期望 题目思路 设 ...
- leetcode 练习--反转链表
最近开始学习数据结构和算法的学习,也自然开始在 leetcode 上练习,所以每周大概会分享做过的leetcode 练习,尽量做到每天更新一道题目. 作为 leetcode 练习笔记的第一道题目,选择 ...
- 【mq读书笔记】mq索引文件刷盘
索引文件的刷盘并不是采取定时刷盘机制,而是每更新一次索引文件就会将上一次的改动刷写到磁盘. 同步刷盘: GroupCommitRequest将被提交到GroupCommitService线程,Grou ...
- 【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)
小伙伴们久等了,在上一篇<[开发板试用报告]用OLED板实现FlappyBird小游戏(上)>中,我们本着拿来主义的原则,成功的让小鸟在OLED屏幕上自由飞翔起来,下面我们将加入按钮交互功 ...