主要問題在: 1. 沒有初始style 樣式 2. 取值轉換不正確改用計算css function press(e) { var e = event || window.event; var code = e.keyCode; if (code == 65) { var di = document.getElementById("com"); var le = di.style.left || (window.getComputedStyle && window.getComputedStyle(di,null).getPropertyValue('left')) || (document.documentElement.currentStyle && di.currentStyle.left); var t = parseInt(le, 10) || 0; di.style.left = t + 100 + "px" } else { alert("end") } }
用下面这个吧,基本实现上下左右移动,<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=gb2312"> <TITLE>通过键盘移动图像</TITLE> <STYLE type="text/css"> body { background-image: url(images/game.jpg); background-repeat: repeat-y; } </STYLE> <script type="text/javascript"> var advman = 0; function init() { advman = document.getElementById("man").style.pixelTop; } function move(event) { e = event||window.event; var obj = document.getElementById("man"); if(e.keyCode==38)//up obj.style.top=obj.offsetTop-20+"px"; if(e.keyCode==40)//down obj.style.top=obj.offsetTop+20+"px"; if(e.keyCode==37)//left obj.style.left=obj.offsetLeft-20+"px"; if(e.keyCode==39)//right obj.style.left=obj.offsetLeft+20+"px"; } document.onkeydown= move ; </script> </HEAD> <BODY> <DIV id="man" style="position:absolute;left:543px;top:288px;width:89px;height:115px;z-index:1;background:red;"></DIV> </BODY> </HTML>
1. 沒有初始style 樣式
2. 取值轉換不正確改用計算css
function press(e) {
var e = event || window.event;
var code = e.keyCode;
if (code == 65) {
var di = document.getElementById("com");
var le = di.style.left || (window.getComputedStyle && window.getComputedStyle(di,null).getPropertyValue('left')) || (document.documentElement.currentStyle && di.currentStyle.left);
var t = parseInt(le, 10) || 0;
di.style.left = t + 100 + "px"
}
else {
alert("end")
}
}
用下面这个吧,基本实现上下左右移动,<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>通过键盘移动图像</TITLE>
<STYLE type="text/css">
body {
background-image: url(images/game.jpg);
background-repeat: repeat-y;
}
</STYLE>
<script type="text/javascript">
var advman = 0;
function init()
{
advman = document.getElementById("man").style.pixelTop;
}
function move(event)
{
e = event||window.event;
var obj = document.getElementById("man");
if(e.keyCode==38)//up
obj.style.top=obj.offsetTop-20+"px";
if(e.keyCode==40)//down
obj.style.top=obj.offsetTop+20+"px";
if(e.keyCode==37)//left
obj.style.left=obj.offsetLeft-20+"px";
if(e.keyCode==39)//right
obj.style.left=obj.offsetLeft+20+"px";
}
document.onkeydown= move ;
</script>
</HEAD>
<BODY>
<DIV id="man" style="position:absolute;left:543px;top:288px;width:89px;height:115px;z-index:1;background:red;"></DIV>
</BODY>
</HTML>