JS实现可以用键盘方向键控制的动画


Posted in Javascript onDecember 11, 2020

用JS写一个可以用键盘方向键控制的动画:

效果如下:

JS实现可以用键盘方向键控制的动画

好了,代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style>
  body {
   overflow: hidden
  }
  
  img {
   position: absolute;
   top: 0;
   left: 10px;
   width: 100px;
   height: 82px
  }
  
  .right {
   transform: rotateY(180deg)
  }
  
  .top {
   transform: rotateZ(45deg)
  }
  
  .bottom {
   transform: rotateZ(-45deg)
  }
 </style>
</head>

<body>
 <img src="./img//Blue ocean11.png" alt="" class="move-background">
 <script>
  var oImg = document.querySelector("img");

  /* 思路: */
  /* 监听键盘的事件(<- -> 上 下) */
  document.onkeydown = function(e) {
   e = e || window.event;

   var code = e.which || e.keyCode;
   var offset = 10;
   switch (code) {
    case 37:
     console.log("left");
     console.log('innerWidth',innerWidth,oImg.offsetLeft);
     oImg.className = "";
     var left = oImg.offsetLeft - offset;
     if (left <= -oImg.offsetWidth) {
      left = window.innerWidth;
     }
     oImg.style.left = left + "px";
     break;
    case 38:
     console.log("top");
     oImg.className = "top";
     var top = oImg.offsetTop - offset;
     if (top <= -oImg.offsetHeight) {
      top = window.innerHeight;
     }
     oImg.style.top = top + "px";
     break;
    case 39:
     console.log("right");
     oImg.className = "right";
     var left = oImg.offsetLeft + offset;
     if (left >= window.innerWidth) {
      left = -oImg.offsetWidth;
     }
     oImg.style.left = left + "px";
     break;
    case 40:
     console.log("bottom");
     oImg.className = "bottom";
     var top = oImg.offsetTop + offset;
     if (top >= window.innerHeight) {
      top = -oImg.offsetHeight;
     }
     oImg.style.top = top + "px";
     break;
    default:
     break;
   }

   /* 临界值检查 */
  }
 </script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 遍历验证所有文本框的值
Aug 27 Javascript
javascript 二进制运算技巧解析
Nov 27 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
AngularJS指令用法详解
Nov 02 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 Javascript
详解express + mock让前后台并行开发
Jun 06 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
基于openlayers实现角度测量功能
Sep 28 Javascript
详解vite2.0配置学习(typescript版本)
Feb 25 Javascript
JS实现京东商品分类侧边栏
Dec 11 #Javascript
vue使用exif获取图片经纬度的示例代码
Dec 11 #Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 #Vue.js
一行JavaScript代码如何实现瀑布流布局
Dec 11 #Javascript
react中hook介绍以及使用教程
Dec 11 #Javascript
js实现菜单跳转效果
Dec 11 #Javascript
jquery实现拖拽小方块效果
Dec 10 #jQuery
You might like
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
PHP 第一节 php简介
2012/04/28 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
vue生命周期的探索
2019/04/03 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python3实现定时任务的四种方式
2019/06/03 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
解决pip install psycopg2出错问题
2020/07/09 Python
Python如何读取、写入CSV数据
2020/07/28 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
德国帽子专家:Hutshopping
2019/11/03 全球购物
经典c++面试题三
2015/07/08 面试题
俄罗斯商务邀请函
2014/01/26 职场文书
人事助理自荐信
2014/02/02 职场文书
学生期末评语大全
2014/04/30 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书