运动的小球自动变键盘控制

<!DOCTYPE html>,
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.box{ width: 400px;height: 400px;border: 1px solid black;position: relative;}
.ball{width: 30px;height: 30px;border-radius: 50%;background-color: red;position: absolute;left: 0;top: 0;}
</style>
</head>
<body>
<div class="box">
<div class="ball">

</div>
</div>
</body>
<script type="text/javascript">
var obox = document.querySelector(".box");
var oball = document.querySelector(".ball");
var a;
var b;
var c;
var d;
document.onclick = function(){

清楚计时器,防止多次点击出现多个计时器,小球运动速度依次增加
clearInterval(a);
clearInterval(b);
clearInterval(c);
clearInterval(d);

建立几个计时器,每当运动到大边框时清楚计时器,建立另一个计时器,换一个方向运行
a=setInterval(function(){
if(oball.offsetLeft>370){
oball.offsetLeft=370;
clearInterval(a);
b=setInterval(function(){
if(oball.offsetTop>370 ){
oball.offsetTop=370;
clearInterval(b);
c=setInterval(function(){
if(oball.offsetLeft<0){
oball.offsetLeft=0;
clearInterval(c);
d=setInterval(function(){
if(oball.offsetTop<0 ){
oball.offsetTop=0
}else{
oball.style.top = oball.offsetTop-5+"px"
}

},30)
}else{
oball.style.left = oball.offsetLeft-5+"px"
}

},30)
}else{
oball.style.top = oball.offsetTop+5+"px"
}

},30)
}else{
oball.style.left=oball.offsetLeft+5+"px"
}

},30)
}

键盘按下时清空所有计时器,由键盘来控制
document.onkeydown=function(eve){
clearInterval(a);
clearInterval(b);
clearInterval(c);
clearInterval(d);
e=eve||window.event;
if(e.keyCode==37){
if(oball.offsetLeft<0){
oball.offsetLeft=0
}else{
oball.style.left=oball.offsetLeft-5+"px";
}

}
if(e.keyCode==38){
if(oball.offsetTop<0){
oball.offsetTop=0
}else{
oball.style.top=oball.offsetTop-5+"px";
}

}
if(e.keyCode==39){
if(oball.offsetLeft>370){
oball.offsetLeft=370
}else{
oball.style.left=oball.offsetLeft+5+"px";
}

}
if(e.keyCode==40){
if(oball.offsetTop>370){
oball.offsetTop=370
}else{
oball.style.top=oball.offsetTop+5+"px";
}

}
}

</script>
</html>

原文地址:https://www.cnblogs.com/huangping199541/p/11432407.html

时间: 2024-10-21 10:34:23

运动的小球自动变键盘控制的相关文章

Unity游戏开发的数学与物理 2 ( 通过键盘控制物体的运动 )

通过键盘控制物体的运动 实现需注意: 获取键盘相应的方法 边界检测 合力方向的速度处理 勾股定理 using UnityEngine; using System.Collections; //通过键盘控制物体的运动 public class KeyControlMotionTest : MonoBehaviour { //物体的X位置 float posX = 0; //物体的Y位置 float posY = 0; //物体在x方向上的速度 float speedX = 1; //物体在y方向上

JavaScript实例:运动的小球

本篇博文通过制作一个小球运动动画的实例,来学习在HTML5的画布上实现动画制作的方法,同时理解面向对象程序设计的基本思想. 1.绘制小球 先在HTML页面中设置一个画布. <canvas id="myCanvas" width="400" height="300" style="border:3px double #996633;"> </canvas> 再将小球画在canvas(画布)上面. 可编写如

cocos2d-x 保持屏幕点亮及自动变灰

很早之前遇到的问题,现在记录一下.有一家Android渠道(抱歉,时间太长了已经记不大清楚是哪一家了 oppo/联想/酷派?)在我们提交新版本时拒绝了,理由是:手机背光状态下,屏幕不会自动变灰. 这里为了测试,我将它改为30秒,这样做有什么影响呢?就是开启任何一个应用,在30秒之内,我如果没有任何的操作,就自动锁屏了.你可以拿你的手机试一下,比如打开微信然后放在那里不动,30之后它表现出来的的效果跟按了电源键锁屏类似.但还是有区别滴: 1)它有一个过渡阶段:屏幕由亮变暗,几秒之后屏幕才黑掉,需要

Android 软键盘控制弹出(很好使,自己写的,绝对能用)

最近在做电商类的项目,由于需求的不断变动,在有关输如文本框的地方,要求弹出软键盘,如果界面很多的下,则需要些很多代码,在空闲的时候,写了一个软键盘管理类,很好使,自己写的,亲自试过,这是一个软键盘控制单例模式实现的. 代码如下: package com.okdi.ilife.activity.login; import android.app.Activity; import android.content.Context; import android.view.View; import an

用键盘控制DIV &amp;&amp; Div闪烁

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

AS3键盘控制

第一种方式: package com.game.keymanager { import flash.display.Stage; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.utils.Proxy; import flash.utils.flash_proxy; /** * The KeyObject class recreates functionality of * Key.isDown

[菜鸟成长记]iOS开发自学笔记07-UITextField自动隐藏键盘

点击UITextField输入框后,软键盘默认情况下在结束输入后不会自动隐藏,目前总结了两种可以自动隐藏软键盘的方法: 第一种:通过响应UITextField对象的Did End On Exit事件,当点击默认软键盘的"Done"按钮或"Return"按钮会触发Did End On Exit 事件,通过编码实现来响应Did End On Exit事件来实现自动隐藏键盘 - (IBAction)TextFieldDidEndOnExit:(id)sender { [t

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro

纯js实现用键盘控制DIV上下左右+放大缩小与变色

//用键盘控制DIV,红色方块为键盘操作区域,您可以进行如下操作:左右控制;背景变为绿色;背景变为黄色;背景变为蓝色放大或缩小用键盘控制DIV,红色方块为键盘操作区域,您可以进行如下操作:  上:↑ 下:↓ 左:← 右:→  Ctrl + 1 : 背景变为绿色  Ctrl + 2 : 背景变为黄色  Ctrl + 3 : 背景变为蓝色  Ctrl + ↑ : 放大  Ctrl + ↓ : 缩小 <!-- Author: XiaoWen Create a file: 2017-01-10 19:0