一.成绩分类

效果图:

功能思路分析:

1. 渲染数据

2. 鼠标按下开启拖拽

\1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽

\2. 开启控制拖拽的变量

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

\4. 获取事件源

\5. 克隆一个副本,设置定位,放到成绩盒子中

3. 鼠标移动-副本跟随

\1. 当开关变量为真时移动盒子

\2. 克隆盒子位置 = 鼠标到页面的距离 - 鼠标到元素的距离

4. 鼠标松开-边界判断

\1. 判断克隆元素是否存在,不存在则直接return

img

\2. 使用**getBoundingClientRect()**方法,获取成才盒子和不成才盒子的上下左右边界值

\3. 判断两个成绩是否都大于90,是则进行成才盒子边界判断。当鼠标进入指定区域则:**将事件源添加到成才盒子,删除克隆副本;**当鼠标没有进入范围则:删除克隆副本

\4. 未成才盒子判断同理

#二.放大镜

效果图:

功能思路分析:

1. 鼠标滑入小盒子=> 显示遮罩和大盒子

2. 鼠标移动 => 遮罩移动 大图移动

3. 鼠标离开 => 隐藏遮罩 隐藏大盒子

#三.今日小结

\1. 拖拽固定三步: 鼠标按下mousedown 鼠标移动mousemove 鼠标抬起mouseup

\2. 获取元素尺寸定位信息: 元素.getBoundingClientRect()

\3. 克隆元素: cloneNode(true)

\4. 节点添加删除: appendChild() removeChild()

#四.作业 -- 垃圾分类

效果图:

垃圾分类作业要求:

\1. 将垃圾拖拽到垃圾桶内

\2. 进入到垃圾桶后判断是否分类正确:错误提示“分类错误,罚款50”,正确“优秀公民,棒棒嗒”。( 根据图片的title标签提示内容判断 )

注意:移动图片时有默认形为,需要取消掉(e.preventDefault())

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

  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. [转载]Redis 持久化之RDB和AOF

    原文链接:https://www.cnblogs.com/itdragon/p/7906481.html 温馨提示 在正式数据(当然是非生产环境啦)练习以下操作时,一定一定一定记得备份dump.rdb ...

  2. FL Studio中的Layer控制器之如何叠加音色

    本章节将采用图文结合的方式给大家讲解电音编曲软件FL Studio中的Layer控制器是如何叠加音色的,感兴趣的朋友可以一起进来交流哦. Layer控制器也是FL Studio中一个特别有用的插件,主 ...

  3. mathtype样式系统使用技巧-通过样式定义来更改方程中的字体

    本教程中,我们主要介绍MathType Desktop的样式系统.演示如何通过更改样式定义来更改方程中的字体.通过样式可以快速轻松地实现我们所需的公式格式,并统一所有公式的样式. 我们以如下公式来作为 ...

  4. AWS CodePipeline部署Maven项目至EC2

    背景 AWS CodePipeline 是一种持续性的集成与交付服务,可以实现快速而可靠的应用程序和基础设施更新.根据您定义的发布流程模型,只要代码发生变更,CodePipeline 便会生成.测试和 ...

  5. 企业BI智能大屏,除了页面炫酷,还能带来什么?

    当我们一谈到可视化大屏,超大画面.超强科技感.酷炫的呈现效果就会出现在我们的脑海中. 所谓数据可视化,就是通过图表.图形.地图等视觉元素,将数据中所蕴含的信息的趋势.异常和模式展现出来.与传统报表相比 ...

  6. 本地VM安装虚拟机,使用xshell连接

    首先把VM设置成上面那样 在ubuntu里面安装ssh apt-get install openssh-server 启动服务 /etc/init.d/ssh startifconfig 查看ip x ...

  7. Oracle表空间和他的数据文件

    //以myspace为例 来源于Oracle 11g数据库应用简明教程 清华出版社 /*创建表空间*/ CREATE TABLESPACE myspace DATAFILE'E:\develop\or ...

  8. Oracle11gR2 sqlplus中可以执行上键查询backspace删除

    1.1 sqlplus中可以执行上键查询backspace删除 1.1.1 上键查询 方法1: 安装源-导入key-安装rpm包-进入配置文件修改参数 rpm -ivh http://download ...

  9. 【Linux】Linux 资料大全(100% 纯干货)

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14071875.html 本文章给大家分享一些 Linux 学习资料,包含:社区网站.在线教程.命令大全.在线模拟 ...

  10. Python的偏函数

    import functools def showag(*args,**kwargs): print(args) print(kwargs) p1 = functools.partial(showag ...