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 jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
jquery滚动特效集锦
Jun 03 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
Dec 27 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 Javascript
用Vue编写抽象组件的方法
May 06 Javascript
iphone刘海屏页面适配方法
May 07 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
Apr 26 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
用Socket发送电子邮件
2006/10/09 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
javascript 构造函数强制调用经验总结
2012/12/02 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
png在IE6 下无法透明的解决方法汇总
2015/05/21 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
jquery replace方法去空格
2017/05/08 jQuery
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
用python写PDF转换器的实现
2020/10/29 Python
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
公司授权委托书样本
2014/09/15 职场文书
国家助学金感谢信
2015/01/21 职场文书
聘任证明怎么写
2015/03/02 职场文书