javascript - js设置了根据当css的.top小于0px时执行一个函数,但是当top小于90px的时候就执行了,为什么?
黄舟
黄舟 2017-04-11 12:47:34
0
2
385

刚学JS没多久,大概看了一遍书,想写一个贪吃蛇练练手,写了一个判断,当head.top < 0px 时,显示游戏结束,但是预览的时候.top到了90px就显示游戏结束了。查了代码不知道为什么,请大神解答一下。

     
   

GameOver

Replay

预览时,通过键盘的W S A D判断head的移动上下左右,我想要的是我按了W后,HEAD向上移动到head.top < 0px时,执行gameOver();可是预览的时候按了W,HEAD移动到.top =90px 的时候,gameOver()就执行了。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信 (2)
大家讲道理

你用的字符串比较:

'90px' > '570px' == true

帮你修改了一下,用 parseInt 把 [dom].style.top 转换成了数字。

只修改了一行(99行):

原来:

if (head.style.top > 570 + "px") {

修改后:

if ( parseInt(head.style.top) > 570 || parseInt(head.style.top) < 0) {
     
   

GameOver

Replay

いいねを押す+0
    伊谢尔伦

    你知道用console.log输出信息,你就应该在gameOver的函数写一个输出信息试试。

    if (head.style.top > 570 + "px") {

    你用字符串比较大小明显有问题

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!