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获取html文件的思路及示例
Sep 17 Javascript
javascript进行数组追加方法小结
Jun 16 Javascript
jQuery.trim() 函数及trim()用法详解
Oct 26 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
Aug 01 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
使用Vue完成一个简单的todolist的方法
Dec 01 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
微信小程序实现文字跑马灯
May 26 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
Jquery异步上传文件代码实例
Nov 13 jQuery
小程序如何写动态标签的实现方法
Feb 05 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
jQuery.extend 函数的详细用法
2012/06/27 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python中global用法实例分析
2015/04/30 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python正则表达式之对号入座篇
2018/07/24 Python
python3 下载网络图片代码实例
2019/08/27 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
python 6行代码制作月历生成器
2020/09/18 Python
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
教师研修随笔感言
2014/01/23 职场文书
教师个人鉴定材料
2014/02/08 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
文化宣传方案
2014/03/13 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
行政处罚事先告知书
2015/07/01 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
JUnit5常用注解的使用
2021/07/02 Java/Android
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS