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仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
Jan 05 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
JS交互点击WKWebView中的图片实现预览效果
Jan 05 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
基于vue实现圆形菜单栏组件
Jul 05 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
echarts实现折线图的拖拽效果
Dec 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
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
django删除表重建的实现方法
2019/08/28 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
python实现飞机大战项目
2020/03/11 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
党校培训思想汇报
2013/12/30 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
教师年度考核评语
2014/04/28 职场文书
机械工程师岗位职责
2014/06/16 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
单身申明具结书
2015/02/26 职场文书
离婚被告答辩状
2015/05/22 职场文书
童年读书笔记
2015/06/26 职场文书
MySQL之DML语言
2021/04/05 MySQL
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server