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电信网通双线自动选择技巧
Nov 18 Javascript
JSON 客户端和服务器端的格式转换
Aug 27 Javascript
javascript中的prototype属性实例分析说明
Aug 09 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
谈谈jQuery之Deferred源码剖析
Dec 19 Javascript
vue实现动态数据绑定
Apr 28 Javascript
AngularJS路由Ui-router模块用法示例
May 29 Javascript
vue项目移动端实现ip输入框问题
Mar 19 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
js实现窗口全屏示例详解
Sep 17 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 Javascript
何时使用Map来代替普通的JS对象
Apr 29 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的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
英国现代市场:ARKET
2019/04/10 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
活动总结怎么写啊
2014/05/07 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers