JS实现可以用键盘方向键控制的动画

 更新时间:2020年12月11日 14:24:10   作者:KindleYoung  
这篇文章主要为大家详细介绍了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 用js实现before和after伪类的样式修改的示例代码

    用js实现before和after伪类的样式修改的示例代码

    本篇文章主要介绍了用js实现before和after伪类的样式修改的示例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-09-09
  • 当前页禁止复制粘贴截屏代码小集

    当前页禁止复制粘贴截屏代码小集

    本文为大家详细介绍下禁止截屏,通过清除剪切板实现、禁止复制、禁止右键菜单、禁止网页另存为等等,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-07-07
  • webpack模块化的原理解析

    webpack模块化的原理解析

    webpack 中实现模块化的核心就是 __webpack_require__ 函数,无论是commonjs模块化还是es 模块都是通过该函数来导入的,这篇文章主要介绍了webpack模块化的原理,需要的朋友可以参考下
    2023-02-02
  • js判断浏览器类型,版本的代码(附多个实例代码)

    js判断浏览器类型,版本的代码(附多个实例代码)

    当前世界上有很多种浏览器,除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器,有时候我们需要判断浏览器与版本方便后续的操作,一句话浏览器的兼容性太差了,缺少标准
    2014-05-05
  • nodejs 后缀名判断限制代码

    nodejs 后缀名判断限制代码

    如一个文件上传功能,需要对上传文件进行文件格式限制。我们通常会使用后缀名做限制。
    2011-03-03
  • 用js实现轮播图效果

    用js实现轮播图效果

    这篇文章主要为大家详细介绍了用js实现轮播图,播放上一张,下一张,可选取第几张等效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 复制小说文本时出现的随机乱码的去除方法

    复制小说文本时出现的随机乱码的去除方法

    想把小说复制下来慢慢看,却发现复制到记事本里出现一大堆乱七八糟的东西,很是不爽。于是就想了个简单的办法把它干掉了。
    2010-09-09
  • 小程序实现抽奖动画

    小程序实现抽奖动画

    这篇文章主要为大家详细介绍了小程序实现抽奖动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • JS实现仿QQ聊天窗口抖动特效

    JS实现仿QQ聊天窗口抖动特效

    本文给大家分享的是类似QQ窗口的抖动效果,只是觉得好玩,没什么技术含量,推荐给大家,有需要的小伙伴可以参考下。
    2015-05-05
  • 基于Javascript实现文件实时加载进度的方法

    基于Javascript实现文件实时加载进度的方法

    不知道大家有没有发现在现在的移动页面上,有很多情况需要加载大量的资源。但是移动端的访问速度和pc还是有很大的差距,有些时候需要一些取巧的方式来提升用户体验,而实时显示加载进度就是其中一种。这篇文章就给大家分享了Javascript实现文件实时加载进度的方法。
    2016-10-10

最新评论