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 相关文章推荐
IE与firefox下Dhtml的一些区别小结
Dec 02 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
用js闭包的方法实现多点标注冒泡示例
May 29 Javascript
js实现数组转换成json
Jun 26 Javascript
读Javascript高性能编程重点笔记
Dec 21 Javascript
原生js编写2048小游戏
Mar 17 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
基于jquery实现左右上下移动效果
May 02 jQuery
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 Javascript
vue项目,代码提交至码云,iconfont的用法说明
Jul 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
php中ob函数缓冲机制深入理解
2015/08/03 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python基础语法(Python基础知识点)
2016/02/28 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
python实现海螺图片的方法示例
2019/05/12 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
HTML5进度条特效
2014/12/18 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
大四学生毕业自荐信
2013/11/07 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
走群众路线学习笔记
2014/11/06 职场文书
后勤工作个人总结
2015/02/28 职场文书
办公室个人总结
2015/02/28 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers