我如何用JQuery动画计算位置
How can I animate a calculated position with JQuery
所以我有一个计算位置的变量,用JQuery来居中元素,我这样做的原因是我不知道元素的宽度,所以我把它做成动态的,像这样
var $x = $("#line").outerWidth();
var $result = "calc( 50% - " + $x +"px / 2 )";
然后我尝试将它动画到中心($result的值),像这样:
$("#line").animate({
"left": $result,
"top" : "15px"
}, 1000 );
遗憾的是,这不起作用,只有顶部的值移动。
任何建议都非常感谢,谢谢。
jsBin演示
如果你已经使用了calc
(CSS3),那么你将不会反对在你的CSS中使用:
使用CSS3 transition
和calc()
#line{
transition: 1s;
/*...other stuff...*/
}
和在你的jQuery(而不是.animate()
)
var outW2 = $("#line").outerWidth() / 2;
$("#line").css({
left : "calc(50% - "+ outW2 +"px)",
top : 70
});
使用.animate()
和负边距(居中)
对于所有旧浏览器,您可以简单地使用.animate()
,就像您使用,
将元素移动到50%,同时也移动到 -
半宽左距(居中):
var outW2 = $("#line").outerWidth() / 2;
$("#line").animate(){
left: "50%",
marginLeft : -outW2
}, 1000);
jsBin演示 (crossbrowser解决方案)
jQuery的animate不接受css3 calc
作为有效像素值。您需要首先计算50%
是什么。
var containerWidth = $("#line").parent().outerWidth();
然后在你的$result
中使用。
var $result = containerWidth * 0.5 - $x * 0.5;
这应该会给你水平像素的位置,使其动画
相关文章:
- 计算CSS3缩放框在另一个框中的最高位置
- 计算“;“左”;以及“;顶部“;来自固定位置浮动元素的值
- 地理位置和计算从当前纬度/液化天然气到另一纬度/液化石油气的距离
- JavaScript位置/方向计算
- jQuery根据鼠标位置计算DIV偏移量和边界
- 计算地理位置距离返回 NaN
- 使用node.js在sigma.js中预先计算图的位置(使用ForceAtlas2)
- 如何根据phonegap中的加速度计x y z值计算位置
- 通过图像计数计算图像位置
- 获取位置A的位置并计算其到位置B的距离
- 调整大小时不重新计算粘贴位置
- 后台位置的计算样式在Chrome中返回0%0%
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- 检测当前位置并使用网站的预定义位置计算距离
- threejs - 仅使用 THREE 即可动态计算相机位置.点
- “我当前的地理位置”和其他坐标之间的计算
- D3 强制有向节点作为文本 - 计算相对箭头指向位置
- 如何计算与DIV位置相关的鼠标坐标
- 我如何用JQuery动画计算位置
- 画布游戏-存储/计算位置/迭代粒子/项目符号/游戏元素的最有效方法