用原生js写碰撞变色效果


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#wrap{
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 0;
top: 0;
cursor: pointer;
z-index: 2;
}
#obstacle{
width: 200px;
height: 200px;
background-color: blue;
position: absolute;
left: 300px;
top: 200px;
z-index: 1;
}
</style>
</head>
<body>
<div id="wrap"></div>
<!-- 障碍物 -->
<div id="obstacle"></div>
</body>
<script type="text/javascript">
var wrap = document.querySelector("#wrap");
var obstacle = document.querySelector("#obstacle");
wrap.onmousedown = function(e){
var e = e || window.event;
//鼠标的坐标
var oX = e.clientX;
var oY = e.clientY;
// 计算差值
var differL = oX - wrap.offsetLeft;
var differT = oY - wrap.offsetTop;
document.onmousemove = function(e){
var e = e || window.event;
// 改变wrap的位置
wrap.style.left = e.clientX - differL + "px";
wrap.style.top = e.clientY - differT + "px"; // 判断
var wrapLeft = wrap.offsetLeft;
var wrapTop = wrap.offsetTop;
var wrapRight = wrapLeft + wrap.offsetWidth;
var wrapBottom = wrapTop + wrap.offsetHeight; var obstacleLeft = obstacle.offsetLeft;
var obstacleTop = obstacle.offsetTop;
var obstacleRight = obstacleLeft + obstacle.offsetWidth;
var obstacleBottom = obstacleTop + obstacle.offsetHeight; if(wrapLeft <= obstacleRight && wrapTop <= obstacleBottom && wrapRight >= obstacleLeft && wrapBottom >= obstacleTop){
wrap.style.backgroundColor = "yellow";
}else{
wrap.style.backgroundColor = "red";
} }
} wrap.onmouseup = function(){
document.onmousemove = null;
}
</script>
</html>
用原生js写碰撞变色效果的更多相关文章
- 原生js实现的放大镜效果
这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...
- 原生js写的贪吃蛇网页版游戏特效
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...
- 原生 js 写分页
欢迎留言或者加本人QQ172360937咨询 这段代码是用原生 js 写的一个分页的效果 <!doctype html> <html lang="en"> ...
- 用原生JS写移动动画案例及实际应用
js很强大 相信很多人都知道,那么它有哪些强大之处呢?有兴趣的人可以去查查,这里就不赘述了,因为不在本片文章讨论的范围. 我们要讲的是怎么用原生JS写移动动画?我们先举一个最简单的动画例子,很多网站的 ...
- 用原生js写一个"多动症"的简历
用原生js写一个"多动症"的简历 预览地址源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现. 会动的简历实现 ...
- 原生JS封装简单动画效果
原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...
- 面向对象原生js幻灯片代淡出效果
面向对象原生js幻灯片代淡出效果 下面是代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- jq与原生js实现收起展开效果
jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...
- 原生js写Ajax
//原生js写ajax就像打电话 //打电话分下面4步//1.拿出手机//2.拨号//3.说话//4.挺对方说话 //ajax也分下面4步//1.创建ajax对象//2.连接到服务器//3.发送请求( ...
随机推荐
- jvm是如何管理内存的
1.JVM是如何管理内存的 Java中,内存管理是JVM自动进行的,无需人为干涉. 了解Java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对 ...
- 使用Junit对Spring进行单元测试实战小结
Demo代码: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath*:/ ...
- C 指针疑虑
uint16 *a; a=(uint16 *)b; 将变量b强制转换为Uint16类型的指针,然后赋值给Uint16类型的指针变量a. 如: uint8 WriteLpa(uint8 *buffer, ...
- .net 生成 静态页面
.net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...
- delphi.指针.应用
注:初稿...有点乱,可能增删改... 因为指针应用,感觉不好写,请大家指出错误,谢谢. 注意: 本文着重点讲的是指针的各类型的应用或使用,而不是说这种方法不应该+不安全+危险+不提倡使用. 其它:本 ...
- wcf 推送 与 广播
原文地址:http://blog.csdn.net/is_zhoufeng/article/details/7641234 ////wcf 接口 #region << 版 本 注 释 ...
- 1.3 Makefile 工程管理
1. 为什么得用Makefile 单步命令生成led.bin [root@cfm880 lesson1]# cd .. [root@cfm880 Part1]# mkdir lesson3 [root ...
- Sublime Text 3 引用插件
汉化插件 点击 View> Show Console 输入import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b ...
- c# mybatis net +mysql
1找到 mybatis.net最好有个例子 http://www.codeproject.com/Articles/894127/WebControls/#_comments 在这里... 这是一 ...
- $.getJSON在IE8下失效
$.getJSON("/Home/GetData?r=" + Math.random(), { ids: ids }, function(data) { //处理逻辑 }); 原因 ...