Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用旅行动画_Javascript_Animation_Dhtml - Fatal编程技术网

Javascript 使用旅行动画

Javascript 使用旅行动画,javascript,animation,dhtml,Javascript,Animation,Dhtml,我和塔维林鱼一起工作。鱼应该从两个方向游过屏幕。我有点难以理解如何设置阵列,使鱼可以游泳。我想的阵列是这样的 Var fishPos = new Array fishPos[0] = fish1 fishPos[1] = fish2 fishPos[2] = fish3 然后做鱼的功能…我真的不知道如何做动画鱼游泳…我正在尝试。如果我正在寻找的阵列是我刚才在那里做的,我想我会受伤的。。谢谢 好的,这是我到目前为止所做的,但有些事情仍然不对,他们鱼不会游泳 <!DOCTYPE html

我和塔维林鱼一起工作。鱼应该从两个方向游过屏幕。我有点难以理解如何设置阵列,使鱼可以游泳。我想的阵列是这样的

Var fishPos = new Array
fishPos[0] = fish1
fishPos[1] = fish2
fishPos[2] = fish3
然后做鱼的功能…我真的不知道如何做动画鱼游泳…我正在尝试。如果我正在寻找的阵列是我刚才在那里做的,我想我会受伤的。。谢谢

好的,这是我到目前为止所做的,但有些事情仍然不对,他们鱼不会游泳

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>Fish tank</title>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <script type="text/javascript">
 // <![CDATA[
var fishPos = new Array(3);
var fishPos = 0; 
var direction; 
var begin; 
fishPos[0] = "fish1.gif"; 
fishPos[1] = "fish2.gif"; 
fishPos[2] = "fish3.gif";
  function fishSwim(fishNumber) {
  document.getElementById("fish"+fishNumber).style.left =  horizontal[fishPos[fishNumber]  + "px";
   ++fishPos[fishNumber];
   if (fishPos[fishNumber] == 49)
    fishPos[fishNumber] = 0;
    }
   function startSwimming() {
    setInterval(fish1Swim, 100);
   }
   // ]]>
   </script>
  </head>
  <body onload="startSwimming();">
   <p><span id="fish1" style=
  "position:absolute; left:10px; top:10px"><img src="fish1.gif" alt="Image of a fish"   /></span></p>
 <p><span id="fish2" style=
 "position:absolute; left:10px; top:120px"><img src="fish3.gif" alt="Image of a fish"  /></span></p>
   <p><span id="fish3" style=
   "position:absolute; left:10px; top:250px"><img src="fish2.gif" alt="Image of a fish" /></span></p>
   </body>
  </html>

鱼缸
// 


您从错误的方向接近它。为了让你更容易,你应该尝试使用动画插件,比如(需要jQuery)

如果你想自己制作,你必须编写一个tweening函数,在指定的时间内,将你的对象从a点移动到B点,改变它的动画帧,偏移它的Y位置以产生这种鱼腥味/摇摆的运动效果等等。创建位置数组并不是真正的方法

在Dev.Opera的这篇优秀文章中,您将找到许多关于如何开始创建自己的动画引擎的提示


如果您只针对现代浏览器,您可以尝试使用CSS3动画,尽管这些动画还没有得到广泛支持。

好的,我正在学习的这本书是javascript,这一章是dynmaic HTML(DHTML),在我的书中没有解释如何做到这一点。我对这件事感到迷惘和困惑,以至于我尝试了所有我知道如何使用的东西,但鱼仍然没有游。哎哟,你把事情搞砸了:)1。您没有fish1Swim函数,因此间隔会尝试在每个勾号2上调用未定义的函数。由于fishPos[fishNumber]存储调用pre increment on的文件名是错误的,因为您只能对Number类型的变量使用递增/递减运算符。3.然后将存储的鱼名与49进行比较,将其名称重置为0;你在更基本的层面上犯了一些错误,而不仅仅是在创建动画的算法上。所以我会回顾一下JS的基础知识,阅读一下我给你的Dev.Opera链接,你应该能够自己完成。这是什么书?也许你应该试试不同的一本,呵呵:)这是我从学校买的一本书……我不知道我可以叫一条鱼来游泳,就是这样。我不想让你气馁,但你应该多读一点javascript——我现在注意到更多的错误。就像在一开始,您为fishPos变量分配了一个数组,然后立即用0覆盖它的值,这样就没有更多的数组了。然后,您尝试为fishPos数组元素设置值——尽管这不再是数组,而是一个数字(0),但您不能这样做。或者,在代码中,您尝试从名为horizontal的数组中赋值,该数组在代码中的任何地方都没有声明。你可以试试看这里