javascript代码的小div为什么向上和向左移动不了

问题描述

javascript代码的小div为什么向上和向左移动不了
 <!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus?">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
     <tbody>
            <div style="background-color:black;height:500px;width:600px" >
                <div id="mytanke" style="background-color:yellow;width:18px;height:20px;position:relative;"></div>
            </div>
     </tbody>
     <script type="text/javascript">
        var mytanke=document.getElementById("mytanke");

        document.onkeydown=function(event){

            var e = event || window.event || arguments.callee.caller.arguments[0];
            var x=mytanke.offsetLeft;
            var y=mytanke.offsetTop;
            if(e && e.keyCode==37){ // zuo
                mytanke.style.backgroundColor='red';
                if(x>8){

                    mytanke.style.left=(x-1)+'px';
                }
            }
            if(e && e.keyCode==38){ // shang

                if(y>8){

                    var mm=parseInt(y)-1;

                    mytanke.style.top=mm+'px';
                }
            }
            if(e && e.keyCode==39){ // you

                  if(x<600){

                      console.log(3333);
                    mytanke.style.left=(x+1)+'px';
                }
            }
            if(e && e.keyCode==40){ // xia
                console.log(4444);
                if(y<500){

                    mytanke.style.top=(y+1)+'px';
                }
            }
         };
     </script>
 </body>
</html>

解决方案

不用用offsetTop/Left,自己打印出来看值就知道为什么了


            var x = parseInt(mytanke.style.left)||0;
            var y = parseInt(mytanke.style.top) || 0;
时间: 2024-09-20 05:33:59

javascript代码的小div为什么向上和向左移动不了的相关文章

如何利用Promises编写更优雅的JavaScript代码_javascript技巧

你可能已经无意中听说过 Promises,很多人都在讨论它,使用它,但你不知道为什么它们如此特别.难道你不能使用回调么?有什么了特别的?在本文中,我们一起来看看 Promises 是什么以及如何使用它们写出更优雅的 JavaScript 代码. Promises 易于阅读 比如说我们想从 HipsterJesus 的API中抓取一些数据并将这些数据添加到我们的页面中.这些 API 的响应数据形式如下: { "text": "<p>Lorem ipsum...<

JAVASCRIPT代码编写俄罗斯方块网页版_javascript技巧

俄罗斯方块方块是小时候的一个回忆,从最开始的掌上的黑白游戏机,到电视游戏机,到电脑,无不有它的痕迹,今天我们来一起重温它的一种实现方法,也算是整理一下我的思路吧...... HTML+CSS+JS实现俄罗斯方块完整版,素材只有图片,想要的下载图片按提示名字保存,css中用的时候注意路径!!主要在JS中!JS附有详细注释 效果: 按键提示:[键盘按键] 素材:图片名字与代码里对应 1.背景图片:tetris.png 2.失败时候的弹出框图片:game-over.png 3.七种色彩小方块图片:  

总结网页代码常用小技巧,网页制作必学

技巧|网页 1.让浏览器窗口永远都不出现滚动条. 〈body style="overflow-x:hidden;overflow-y:hidden"〉或〈body style="overflow:hidden"〉 或〈body scroll=no〉2,没有水平滚动条〈body style="overflow-x:hidden"〉3,没有垂直滚动条〈body style="overflow-y:hidden"〉 2,如何给图片抖

使用AngularJS编写较为优美的JavaScript代码指南

  本文示例代码下载:modulePattern.zip - 所有的 4 个 HTML 文件 以及 panacea.js - 1.6 KB 介绍 AngularJS 的库里面有很多东西,但本文中我只想专注于小的,针对特定主题的库,我相信通过它们能对Angular有一个较好的介绍. 理解这篇文章并不需要你有任何Angular相关的,甚至是JavaScript的经验.希望你能从本文中看到一些使用Angular的好处,并乐于动手尝试. 背景 我使用Angular有一段时间了,而在学习Angular的时

一个JavaScript的求爱小特效_javascript技巧

这里面做了一个JavaScript的求爱小特效,效果如下: 不仅能出现下面的图的效果,还可以让这个图形跟随着鼠标转动哦,这里面只是一个简单的没有修饰的小例子,基于这个例子可以让求爱,更加好玩了.闷骚男们,是不是可以给你的小萝莉发个这样的网页啊.给力的. 贴上code吧: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert t

JavaScript代码应该放在HTML代码哪个位置比较好?_javascript技巧

在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方.但放置的地方,会对 JavaScript 代码的正常执行会有一定影响,具体如下所述. 放置于<head></head>之间 将 JavaScript 代码放置于 HTML 文档的 <head></head> 标签之间是一个通常的做法.由于 HTML 文档是由浏览器从上到下依次载入的

延时加载JavaScript代码提高速度_javascript技巧

延时加载js代码提高速度,具体内容如下所示: 如果网页中存在大量的javascript代码会极大的影响网页的访问速度,下面就简单介绍一下如何处理此问题. 一.延时加载js文件: 可以使用定时器函数setTimeout()让外部的js文件延迟加载,例如: <script type="text/javascript" src="" id="my"></script> <script type="text/jav

JavaScript代码规范

原文: Code Conentions for the JavaScript Programming Language 这是一篇JavaScript编程代码规范,它由Sun公司的文档Code Conventions for the Java Programming Language激发而来. 由于JavaScript is not Java,这篇规范和Java规范相比有很大改动. 代码质量在软件质量中占很大比例.在软件生命周期里,一个程序会被许多人接手.如果一个程序可以很好的表达自己的结构和特性

跪求一个javascript代码

问题描述 本人最近做了个小东西想用一段javascript代码想实习点击之后弹出一个层能输入内容类似QQ空间里面的评论回复 解决方案 解决方案二:做一个层,style="display:none",点击之后style="display:block"解决方案三:你做一个层用jquery中的show的显示出来解决方案四:<script>functionshowDiv(){document.getElementById("reply").s