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 相关文章推荐
JS中剪贴板兼容性、判断复制成功或失败
Mar 09 Javascript
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
jQuery取得select选择的文本与值的示例
Dec 09 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
Jun 02 Javascript
Vue生命周期示例详解
Apr 12 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
Jun 07 Javascript
JS实现电商放大镜效果
Aug 24 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
Vue常用指令详解分析
Aug 19 Javascript
微信小程序之几种常见的弹框提示信息实现详解
Jul 11 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python标准库sched模块使用指南
2017/07/06 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
酒店管理毕业生自荐信
2013/10/24 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
自荐书范文范例
2014/02/13 职场文书
小学节能减排倡议书
2014/05/15 职场文书
根叔历年演讲稿
2014/05/20 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2014年纠风工作总结
2014/12/08 职场文书
Python Socket编程详解
2021/04/25 Python
Python中json.dumps()函数的使用解析
2021/05/17 Python
nginx rewrite功能使用场景分析
2022/05/30 Servers