js下 Day11、案例
一.成绩分类
效果图:
功能思路分析:
1. 渲染数据
2. 鼠标按下开启拖拽
\1. 给成绩盒子绑定鼠标按下事件(mousedown),用事件委托做多个标签的拖拽
\2. 开启控制拖拽的变量
\3. 获取鼠标到元素的距离(e.offsetX)
\4. 获取事件源
\5. 克隆一个副本,设置定位,放到成绩盒子中
3. 鼠标移动-副本跟随
\1. 当开关变量为真时移动盒子
\2. 克隆盒子位置 = 鼠标到页面的距离 - 鼠标到元素的距离
4. 鼠标松开-边界判断
\1. 判断克隆元素是否存在,不存在则直接return
\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、案例的更多相关文章
- 原生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 在这里即可查看用法 ...
随机推荐
- 史上最全!2020面试阿里,字节跳动90%被问到的JVM面试题(附答案)
前言:最近老是收到小伙伴的私信问我能不能帮忙整理出一份JVM相关的面试题出来,说自己在大厂去面试的时候这一块问的是特别多的,每次自己学的时候每次都学不到重点去.这不他来了,一份详细的JVM面试真题给大 ...
- 苹果电脑怎么给浏览器安装Folx扩展程序
Folx是一款MacOS专用的老牌综合下载管理软件,它的软件界面简洁,应用简单方便,下载管理及软件设置灵活而强大.Folx不但能够进行页面链接下载.Youtube视频下载,而且还是专业的BT下载工具. ...
- 【PYTEST】第三章参数化
知识点: 参数化 1. parametrize() 参数化测试用例 实际工作中,我们不可能就传一组数据,参数化支持多组数据测试,并且每组都会去执行,parametrize(), 第一个参数用逗号开分隔 ...
- python的pip安装超时问题解决
使用pip install 安装python第三方库时出现了如下错误:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionP ...
- CentOS 防火墙常用命令
1.查看防火墙状态: firewall-cmd --state 2.启动防火墙 systemctl start firewalld 3.关闭防火墙 systemctl stop firewalld 4 ...
- 【mq读书笔记】消息到达唤醒挂起线程检查新消息
DefaultMessageStore#start 当新消息到达CommitLog是,ReputMessageService线程负责将消息转发给ConsumeQueue,IndexFile,如果Bro ...
- Linux服务器学习----tomcat 服务配置实验报告(一)
一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64 ...
- C# WinForm UDP 发送和接收消息
using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; ...
- java42
1.Random类 随机生成某个整数 Random r = new Random(); System.out.println(r.nextInt()); 伪随机数:第一次打印为随机,再次运行,数字将保 ...
- CentOS中安装Docker步骤
1.安装仓库所需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置yum加速源 yum-config-mana ...