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