Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Jquery_Flash_Algorithm - Fatal编程技术网

Javascript 基于宽度的动画时间

Javascript 基于宽度的动画时间,javascript,jquery,flash,algorithm,Javascript,Jquery,Flash,Algorithm,这不是一个jquery问题,而是一个通用算法问题 我已经提到我的动画需要工作5秒。在1024到1600监视器上,它工作正常。但在较小的显示器上,速度太快了。如何根据屏幕宽度进行减速。i、 e动画需要根据屏幕宽度计算 比如说我提到的1024宽度,它需要工作7秒。即使屏幕减小,也应工作7秒 再次在更大的监视器上,因为宽度更大,时间更短(7秒),动画速度更快,所以这里的时间必须再次增加 两者比例的最终效果需要相同 这是我的代码,以防任何人有jquery解决方案 $("#plane").css({

这不是一个jquery问题,而是一个通用算法问题

我已经提到我的动画需要工作5秒。在1024到1600监视器上,它工作正常。但在较小的显示器上,速度太快了。如何根据屏幕宽度进行减速。i、 e动画需要根据屏幕宽度计算

比如说
我提到的1024宽度,它需要工作7秒
。即使屏幕减小,也应工作7秒

再次在更大的监视器上,因为宽度更大,时间更短(7秒),动画速度更快,所以这里的时间必须再次增加

两者比例的最终效果需要相同

这是我的代码,以防任何人有jquery解决方案

$("#plane").css({
    'margin-left'   : $(window).width() - 300,
    'position'  : 'absolute'
}).animate({
    "margin-left" : '35%'
}, 5000, 'linear', function(){
    $(this).animate({
        "opacity"       : 0,
        "margin-left"   : 0
    }, 2200, 'linear')
});

您可以计算所需的时间

听起来你在描述一个算法,如果窗口宽度小于1024像素,那么你需要7秒,但是如果大于7秒,那么你需要更长的时间。假设我们将时间线性扩展到1024px以上,如果它的宽度是2048px,则需要14秒。可通过此计算进行描述:

var animTime = 7000;
var width = $(window).width();
if (width > 1024) {
    animTime += Math.floor((width - 1024) / 1024) * 7000);
}
然后,您可以在两段动画之间分割时间:

$("#plane").css({
    'margin-left'   : $(window).width() - 300,
    'position'  : 'absolute'
}).animate({
    "margin-left" : '35%'
}, Math.floor((5/7) * animTime), 'linear', function(){
    $(this).animate({
        "opacity"       : 0,
        "margin-left"   : 0
    }, Math.floor((2/7) * animTime), 'linear')
});

在不同的机器、显示器和图形卡上,绘图时间似乎不太可能存在任何线性关系,从而使您能够轻松计算使用的时间

但是,您可以计算动画运行的时间(例如,通过回调)。分割动画的前半秒左右。在目标硬件上,计算初始部分运行所需的代码时间,并相应地调整动画其余部分的限制。例如,如果校准段的标称长度为N,且需要时间C才能完成,且主段的标称长度为T,则使用时间T'=T*R制作主段的动画,其中R是具有初始值N/C的速比


在R上应用一些健全限制,如果您要运行多个动画,请继续测量完成时间并相应地更新速度比。

将其调整为大于或小于1024。无论哪种情况,动画都会缩放up@WebDeveloper-对于我来说,你想在更小和更大的屏幕上增加时间是没有意义的,但不知何故,1024是一个神奇的值,应该保持不变。我无法想象为什么这对人类互动有意义。但是,如果您想这样做,您可以在我的代码中添加一个
else
子句,并在小于1024时编写您想要的任何缩放算法。你没有描述你想要什么缩放算法,所以我不能提供任何代码。我的主要问题是上面/我的代码在iPad上太快了,因为屏幕太小