javascript – 如何使用JQuery为计算位置设置动画

所以我有一个带有计算位置的变量,它使元素与JQuery居中,我之所以这样做是因为我不知道元素的宽度,所以我把它变成动态的.

var $x = $("#line").outerWidth();

var $result = "calc( 50% - " + $x +"px / 2 )";

然后我尝试将它设置为中心($result的值),如下所示:

   $("#line").animate({ 
        "left": $result,"top" : "15px"

    },1000 );

可悲的是,这不起作用,只有最重要的价值.

非常感谢任何建议,谢谢.

最佳答案
jsBin demo

如果你已经使用了calc(CSS3),那么你将无法在CSS中使用它:

使用CSS3过渡和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 demo(crossbrowser解决方案)

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些