<!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写碰撞变色效果的更多相关文章

  1. 原生js实现的放大镜效果

    这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...

  2. 原生js写的贪吃蛇网页版游戏特效

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...

  3. 原生 js 写分页

    欢迎留言或者加本人QQ172360937咨询 这段代码是用原生 js 写的一个分页的效果 <!doctype html> <html lang="en"> ...

  4. 用原生JS写移动动画案例及实际应用

    js很强大 相信很多人都知道,那么它有哪些强大之处呢?有兴趣的人可以去查查,这里就不赘述了,因为不在本片文章讨论的范围. 我们要讲的是怎么用原生JS写移动动画?我们先举一个最简单的动画例子,很多网站的 ...

  5. 用原生js写一个"多动症"的简历

    用原生js写一个"多动症"的简历 预览地址源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现. 会动的简历实现 ...

  6. 原生JS封装简单动画效果

    原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...

  7. 面向对象原生js幻灯片代淡出效果

    面向对象原生js幻灯片代淡出效果 下面是代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  8. jq与原生js实现收起展开效果

    jq与原生js实现收起展开效果 (jq需自己加载) <!DOCTYPE html> <html> <head> <meta charset="UTF ...

  9. 原生js写Ajax

    //原生js写ajax就像打电话 //打电话分下面4步//1.拿出手机//2.拨号//3.说话//4.挺对方说话 //ajax也分下面4步//1.创建ajax对象//2.连接到服务器//3.发送请求( ...

随机推荐

  1. jdk动态代理实现

    1.jdk动态代理的简单实现类 package com.proxy; import java.lang.reflect.InvocationHandler; import java.lang.refl ...

  2. 前端模板之EasyUI常用控件及参数

    CSS类定义 div easyui-window window窗口样式 属性如下: 1) modal:是否生成模态窗口.true[是] false[否] 2) shadow:是否显示窗口阴影.true ...

  3. Cacti监控Centos抓包unreachable - admin prohibited

    :: 抓包发现总是有这个出现,而且是跟在GetRequest后面. 打开iptables配置: 最开始网上找的配置语句是这个, -A INPUT -p udp -m udp --sport -j AC ...

  4. Unity3d之json解析研究

    Unity3d之json解析研究     json是好东西啊!JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式      JSON简单易用,我要好好研究一下 ...

  5. 【解决】putty使用从AWS下载的private key登录失败

    在AWS启动一个实例时如果创建并下载了一个KeyPair的私钥(*.pem),则可以此私钥作为Credentials通过putty远程登录到这个实例系统.但在实际操作中,用putty登录时会提示如下错 ...

  6. 来自 Thoughtram 的 Angular 2 系列资料

    Angular 2 已经正式 Release 了,Thoughtram 已经发布了一系列的文档,对 Angular 2 的各个方面进行深入的阐释和说明. 我计划逐渐将这个系列翻译出来,以便对大家学习 ...

  7. Linux 任务计划

    一.配置cron实现自动化 使用cron实现任务自动化可以通过修改/etc/crontab文件以及使用crontab命令实现,其结果是一样的. 1./etc/crontab文件实现自动化 cron守护 ...

  8. 【小错误】SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

    1.今天在scott用户下执行语句跟踪时报了如下错误: SCOTT@ORA11GR2>set autotrace on SP2: Cannot find the Session Identifi ...

  9. 如何为datagridview加上序号

    最简单的方法是在Datagridview的事件RowPostPaint事件下面添加如下代码即可 private void dataGridView1_RowPostPaint(object sende ...

  10. 升级python2.7至python3

    首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: 这里我用下载的是Python-3.5.1.tar.bz2版本,下载完成后到下载目录下,解压 进入解压缩后的文件夹 cd  Py ...