使用键盘上下左右键控制小球移动

*{

margin:0;

padding:0;

}

#ball{

width: 200px;

height: 200px;

background: pink;

border-radius: 50%;

position: absolute;

}

//获取元素

var ball = document.getElementById('ball');

//定义小球每次移动的步径

var step = 1;

//定义小球水平、垂直方向移动定时器标志

var runX,runY;

//为使小球运行更流畅,加入水平移动定时器

function moveX(step){

console.log(runX);

if(runX){

return;

}

runX = setInterval(function(){

var newLeft = ball.offsetLeft + step;

var clientWidth = document.documentElement.clientWidth || document.body.clientWidth;

if(newLeft <= 0){

newLeft = 0;

}

if(newLeft >= clientWidth - ball.offsetWidth){

newLeft = clientWidth - ball.offsetWidth;

}

ball.style.left = newLeft + 'px';

},5);

}

//为使小球运行更流畅,加入垂直移动定时器

function moveY(step){

if(runY){

return;

}

runY = setInterval(function(){

var newTop = ball.offsetTop + step;

var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;

if(newTop <= 0){

newTop = 0;

}

if(newTop >= clientHeight - ball.offsetHeight){

newTop = clientHeight - ball.offsetHeight;

}

ball.style.top = newTop + 'px';

},5);

}

//键盘按键按下时小球移动

window.onkeydown = function(e){

//兼容性写法

var e = e || window.event;

//使用switch结构判断键盘按下的是哪个键

switch(e.keyCode){

case 37:

moveX(-step);

break;

case 38:

moveY(-step);

break;

case 39:

moveX(step);

break;

case 40:

moveY(step);

break;

}

}

//键盘按键抬起时,小球停止移动

window.onkeyup = function(){

//清除定时器

clearInterval(runX);

runX = undefined;

clearInterval(runY);

runY = undefined;

}

html键盘控制一串元素移动,【案例】使用上下左右键控制元素的移动相关推荐

  1. html屏蔽上下左右键控制页面,【案例】使用上下左右键控制元素的移动

    使用键盘上下左右键控制小球移动 *{ margin:0; padding:0; } #ball{ width: 200px; height: 200px; background: pink; bord ...

  2. java 上下键_用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 | 学步园...

    用键盘的上下左右键控制JAVA SWING UI中的组件的移动等事件 import java.awt.*; import java.awt.event.*; import javax.swing.*; ...

  3. Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转

    Unity中C#代码学习用wasd和上下左右键控制物体前后左右上下移动和绕轴旋转 using System.Collections; using System.Collections.Generic; ...

  4. 上下左右键控制ultraGrid单元格数据的移动

    在项目中的一些录入页面,用户要求当填写完一个数据时根据上下左右键来移动光标,可以不用点击鼠标而输入下一个单元格的数据,从而提高工作效率.根据分析,这个功能可以通过ultraGrid的KeyDown事件 ...

  5. unity3d中上下左右键控制移动

    using UnityEngine; using System.Collections; public class MoveByADSW : MonoBehaviour { //人物状态public ...

  6. 从键盘输入一串连续的数字,判断输出是否为电话号码

    从键盘输入一串连续的数字,判断输出是否为电话号码.(可以自行设定137/138/139等等,但是长度固定) import java.util.Scanner;public class main {pu ...

  7. 5.29 C语言练习(计算数字个数:从键盘输入一串字符,输出字符串里的数字字符数。)

    [练习] 题目要求:从键盘输入一串字符,输出字符串里的数字字符数. #include "stdio.h" int main() {char a[100];int i,num=0;g ...

  8. 汇编“从键盘输入一串字符,分别统计其中字母、数字和其

    '从键盘输入一串字符,分别统计其中字母.数字和其他字符的个数,并输出显示." 不知道哪里错了.请帮忙看一下,谢谢 DATA SEGMENT STR2 DB 'abcd543@' LEN EQ ...

  9. plc控制伺服电机 四轴攻丝机案例(包含伺服接线图)

    plc控制伺服电机 四轴攻丝机案例(包含伺服接线图) 该程序为plc控制伺服电机的工程案例程序,包含伺服电机接线图,包含程序流程的详细解释说明可. 程序包括伺服电机的启动,停止,原点定位,回归原点,位 ...

最新文章

  1. android 多屏幕适配 : 第一部分
  2. sklearn之svm-葡萄酒质量预测(2)
  3. Java网络编程之TCP、UDP
  4. 【C010】Python - 基础教程学习(一)
  5. 大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结
  6. trace对页启用跟踪
  7. 十、Linux文件系统基本操作(mount挂载,umount卸载)
  8. VMworld 2010旧金山胜利闭幕
  9. Halcon学习笔记(三)---数据类型
  10. Kendo UI开发教程(9): Kendo UI Validator 概述
  11. 监听浏览器返回上一页
  12. rabbitmq配置文件_RabbitMQ学习
  13. 深入理解Webpack核心模块Tapable钩子[同步版]
  14. 《深度学习Python实践》附录——聚类分析
  15. 简单python程序代码_几个简单的python程序分享
  16. 【软件相关】Proteus 8入门教程
  17. 升流式水解酸化反应器设计计算_《HJ 2047-2015 水解酸化反应器污水处理工程技术规范》.pdf...
  18. 机器视觉——2019试卷
  19. Design Ware IP
  20. 微软再出神器,这次终于对Python下手了!

热门文章

  1. 8个暴笑幽默及顿悟的哲理故事
  2. 北京上海新手股票开户佣金和费率最低是多少?万一开户!
  3. 英语教学计划软件测试,2020中学八年级英语教学计划
  4. 斯坦纳问题的matlab代码,斯坦纳最小树.ppt
  5. jFinal学习笔记
  6. C Primer Plus 第6章_代码和练习题
  7. 在小程序中使用阿里巴巴矢量图标库-代码版
  8. 中国行政单位树形图的可视化实战!
  9. python中的repr是什么意思_理解Python中的repr()函数
  10. 超级卵杰的自动脚本(3)签到 抢分 入团 压分功能。