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 相关文章推荐
基于jquery的一个OutlookBar类,动态创建导航条
Nov 19 Javascript
顶部缓冲下拉菜单导航特效的JS代码
Aug 27 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
jQuery 遍历map()方法详解
Nov 04 Javascript
基于jQuery的checkbox全选问题分析
Nov 18 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
VUE重点问题总结
Mar 19 Javascript
js如何找出字符串中的最长回文串
Jun 04 Javascript
Vue v-bind动态绑定class实例方法
Jan 15 Javascript
js通过canvas生成图片缩略图
Oct 02 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学习笔记之数组篇
2011/06/28 PHP
php教程之phpize使用方法
2014/02/12 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
js对象的比较
2011/02/26 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Python 用户登录验证的小例子
2013/03/06 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Python with标签使用方法解析
2020/01/17 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
化工专业应届生求职信
2013/11/08 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
稽核岗位职责范本
2015/04/13 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
Python实现双向链表基本操作
2022/05/25 Python