Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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,我希望能够在平滑动画中,在1000毫秒内将元素El1从(30,40)移动到(30,30)。甚至可能吗?试着查看jquery库,动画功能正是您想要的,并且易于实现 Jquery位于 动画功能具体是在 您的代码将如下所示 $('El1').animate({top: "-10px"}), 1000); 确保有一个id=“moveme”和cssposition:absolute的元素。如果您不熟悉jQuery,并且不想使用它,并且只为某些移动将页面大小增加约50kb,我建议您使用我的一个函数: fu

我希望能够在平滑动画中,在1000毫秒内将元素El1从(30,40)移动到(30,30)。甚至可能吗?

试着查看jquery库,动画功能正是您想要的,并且易于实现

Jquery位于

动画功能具体是在

您的代码将如下所示

$('El1').animate({top: "-10px"}), 1000);

确保有一个id=“moveme”和css
position:absolute的元素。如果您不熟悉jQuery,并且不想使用它,并且只为某些移动将页面大小增加约50kb,我建议您使用我的一个函数:

function smooth(x, max){
return Math.floor((Math.sin((x/max*Math.PI)-(Math.PI/2))+1)*max/2);
}
您需要一个代码来移动该元素,如下所示:

function process(LI){
    LI = LI || Config.From;
    LI++;
    Left = smooth(LI, Config.To)
    Config.Element.style.left = Left + 'px'
    if (LI < Config.To)
    setTimeout ("process("+LI+")", 10);
}

Config = {
Element: document.getElementById('El1'),
From: 0,
To: 400
};

process();
功能过程(LI){
LI=LI | | Config.From;
LI++;
左=平滑(LI,配置到)
Config.Element.style.left=left+'px'
如果(LI
您也可以使用“阻尼”方法,如:位置+=(目的地-位置)/阻尼
function process(LI){
    LI = LI || Config.From;
    LI++;
    Left = smooth(LI, Config.To)
    Config.Element.style.left = Left + 'px'
    if (LI < Config.To)
    setTimeout ("process("+LI+")", 10);
}

Config = {
Element: document.getElementById('El1'),
From: 0,
To: 400
};

process();