如果声明.css'左'的百分比

时间:2011-07-09 06:18:58

标签: javascript jquery html

我需要触发一个事件,只有当对象在左边的某个百分比时,使用.css(),所有这些都在jquery中。 到目前为止这是我的代码:

HTML:

<div id="midDiv"><img ..../></div>

脚本:

$(document).ready(function(){
$("#midDiv").click(function () {

  if($('#midDiv').css('left') === '50%')
  {
      $("#midDiv").animate({
    left: "+=70%"},
    { queue: false, duration: 900, easing:'swing' }
     );
  }
});

}); 

这显然不起作用,但如果我使用“px”代替%,它就有效。我想这是因为.css()返回一个字符串,但我想知道是否有办法用百分比来做。我也尝试过offset(),但它也以像素为单位返回了值。

2 个答案:

答案 0 :(得分:1)

无法通过.css()获得该百分比,您必须手动计算该百分比。

答案 1 :(得分:0)

这是因为.css返回实际值集,不以任何方式计算。

一种解决方案是向上遍历DOM树,直到找到具有位置的最近父级!= static,得到它的宽度并将元素偏移量除以该值。

由于浮点的性质,请务必使用增量。