jQuery .animate命令的问题

Issue with jQuery .animate command

本文关键字:问题 命令 animate jQuery      更新时间:2023-09-26

我正在使用jQuery的animate命令,由于某种原因,这不起作用:

$('#my_div_id').animate({left:'calc(50% + 50px)'}, 1000);

有办法绕过这个吗?

如果我输入'50%'或'50px',我知道代码可以工作,但我想让我的div动画到屏幕的50% + 50px。

提前感谢!

看起来calc不能被动画化,但幸运的是,你已经很容易计算出屏幕宽度的50%,因为你有JavaScript的力量。

$("#my_div_id").animate({left: $("body").width() / 2 + 50 + "px"}, 1000);

这假设#my_div_id的位置相对于body(即没有相对位置祖先-否则您将不得不使用它)。

基本上没有什么新东西,但是使用请求者的明确请求,将其设置为屏幕宽度的50%:

var width = screen.width / 2 + 50;
$('#my_div_id').animate({left: width + "px"}, 1000);