Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 - Fatal编程技术网

如何使一些基本javascript动画动态化?

如何使一些基本javascript动画动态化?,javascript,Javascript,当我的网站加载时,我使用以下JavaScript动画使一些图像从屏幕右侧滑入: var step=8; var step1=16; var step2=12; var step3=6; var step4=4; function move_img(str) { var a=document.getElementById('i1').offsetTop; a= a +100; document.getElementById('i1').style.top= a + "px"; var b=do

当我的网站加载时,我使用以下JavaScript动画使一些图像从屏幕右侧滑入:

var step=8; var step1=16; var step2=12; var step3=6; var step4=4;
function move_img(str) {

var a=document.getElementById('i1').offsetTop; a= a +100;
document.getElementById('i1').style.top= a + "px";

var b=document.getElementById('i2').offsetTop; b= b +100;
document.getElementById('i2').style.top= b + "px";

var c=document.getElementById('i3').offsetTop; c= c +100;
document.getElementById('i3').style.top= c + "px";

var d=document.getElementById('i4').offsetTop; d= d +100;
document.getElementById('i4').style.top= d + "px";

var e=document.getElementById('i5').offsetTop; e= e +100;
document.getElementById('i5').style.top= e + "px"; }

function disp(){

var a=document.getElementById('i1').offsetLeft; var
b=document.getElementById('i2').offsetLeft; var
c=document.getElementById('i3').offsetLeft; var
d=document.getElementById('i4').offsetLeft; var
e=document.getElementById('i5').offsetLeft; if(a > 400){a= a - step;
document.getElementById('i1').style.left= a + "px"; // horizontal
movment step *=0.9948; } if(b > 200 ){b= b - step1;
document.getElementById('i2').style.left= b + "px"; // horizontal
movment step1*=0.992; }

if(c > 350 ){c = c - step2; document.getElementById('i3').style.left=
c + "px"; // horizontal movment step2*=0.993; }

if(d > 1200 ){d = d - step3; document.getElementById('i4').style.left=
d + "px"; // horizontal movment step3*=0.997; } if(e > 1350 ){e = e -
step4; document.getElementById('i5').style.left= e + "px"; //
horizontal movment step4*=0.998; } }

function timer(){ disp(); my_time=setTimeout('timer()',10);

}
虽然这在我的电脑上看起来很棒,因为它使用像素而不是百分比,但在不同的纵横比下看起来很糟糕。我怎样才能解决这个问题


谢谢大家!

在这里,我准备使用CSS3
transition
的示例。下面是一个具有转换规则的类。在演示中,您可以看到如何做到这一点

.animate{
    left: 0;
    width: 50px;
    -webkit-transition: all 1s;
    transition: all 1s;
}

另一个使用CSS3
动画的案例:


相对于窗口大小进行尺寸更改


但是,如果您愿意只支持可以使用CSS3的浏览器,正如其他人所建议的那样,CSS可能是一种更干净、更有效的方式来实现您想要的效果

不确定您是否必须使用Javascript,但您知道您可以用它来实现吗?使用CSS,或者在加载时更改元素的类名谢谢,这比JavaScription简单得多,更适合于浏览器。但是要小心。如果您需要为最旧的浏览器编写代码,您必须改变主意,因为其中一些(是的,我的意思是IE:D)不支持此功能。