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 学习之旅 (2)
Feb 05 Javascript
JS调试必备的5个debug技巧
Mar 07 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
jquery if条件语句的写法
May 19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 Javascript
js实现无缝轮播图插件封装
Jul 31 Javascript
浅谈TypeScript 索引签名的理解
Oct 16 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
substr()函数中文版
2006/10/09 PHP
php UTF8 文件的签名问题
2009/10/30 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
js命名空间写法示例
2015/12/18 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
python构建深度神经网络(续)
2018/03/10 Python
python开发游戏的前期准备
2019/05/05 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
Python文件路径名的操作方法
2019/10/30 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Python 实现进度条的六种方式
2021/01/06 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
保护动物的标语
2014/06/11 职场文书
英语专业求职信
2014/07/08 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
python实现简单的三子棋游戏
2022/04/28 Python