JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例


Posted in Javascript onJanuary 29, 2019

本文实例讲述了JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动。分享给大家供大家参考,具体如下:

1. 盒子跟着鼠标移动

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
  *{
    margin:0;
    padding:0;
  }
    div{
      width: 100px;
      height: 100px;
      background: red;
      position: absolute;
    }
  </style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
  document.onmousemove=function fn(ev) {
    var event=window.event||ev;
    var oDiv=document.getElementsByTagName("div");
    for(x=0;x<oDiv.length;x++){
      oDiv[x].style.transition=(x*0.5)+"s";
      oDiv[x].style.left=event.clientX+"px";
      oDiv[x].style.top=event.clientY+"px";
    }
  }
</script>
</body>
</html>

2. 键盘方向键控制盒子移动

<html>
<head>
  <meta charset="utf-8" />
  <style type="text/css">
    div{
      width:100px;
      height:100px;
      background: red;
      position:absolute;
      left:100px;
      top:100px;
      transition: 0.1s;
    }
  </style>
  <script>
        window.onload = function(){
      var oDiv = document.getElementById("div1");
      var left = false;
      var right = false;
      var top = false;
      var bottom = false;
      document.onkeydown = function(ev){
        var oEvent = ev || event;
        var keyCode = oEvent.keyCode;
        switch(keyCode){
          case 37:
            left=true;
            break;
          case 38:
            top=true;
            break;
          case 39:
            right=true;
            break;
          case 40:
            bottom=true;
            break;
        }
      };
      setInterval(function(){
        if(left){
          oDiv.style.left = oDiv.offsetLeft-10+"px";
        }else if(top){
          oDiv.style.top = oDiv.offsetTop-10+"px";
        }else if(right){
          oDiv.style.left = oDiv.offsetLeft+10+"px";
        }else if(bottom){
          oDiv.style.top = oDiv.offsetTop+10+"px";
        }
      },50);
      document.onkeyup = function(ev){
        var oEvent = ev || event;
        var keyCode = oEvent.keyCode;
        switch(keyCode){
          case 37:
            left=false;
            break;
          case 38:
            top=false;
            break;
          case 39:
            right=false;
            break;
          case 40:
            bottom=false;
            break;
        }
      }
    }
  </script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试一下运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
Sep 17 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 Javascript
Vue表情输入组件 微信face表情组件
Feb 11 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
Vue环境搭建+VSCode+Win10的详细教程
Aug 19 Javascript
如何用Node.js编写内存效率高的应用程序
Apr 30 Javascript
JS实现的类似微信聊天效果示例
Jan 29 #Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 #Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 #Javascript
详解基于webpack&amp;gettext的前端多语言方案
Jan 29 #Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 #Javascript
vue实现的下拉框功能示例
Jan 29 #Javascript
angular4中引入echarts的方法示例
Jan 29 #Javascript
You might like
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
Javascript模板技术
2007/04/27 Javascript
JavaScript多线程的实现方法
2007/05/08 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
Vue.js数据绑定之data属性
2017/07/07 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
React中的render何时执行过程
2018/04/13 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
Python之PyUnit单元测试实例
2014/10/11 Python
python爬虫中多线程的使用详解
2019/09/23 Python
基于FME使用Python过程图解
2020/05/13 Python
python各种excel写入方式的速度对比
2020/11/10 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
口头翻译求职人自荐信
2013/12/07 职场文书
挂职思想汇报
2013/12/31 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
公司食堂管理制度
2015/08/05 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
利用Python实现Picgo图床工具
2021/11/23 Python