css(“右”,posVar);不起作用

时间:2011-01-06 09:24:30

标签: javascript jquery css jquery-animate

这里的主要目标是立即“跳”到右边。我不想使用.animate(),因为它会产生一些“闪烁”效果 - 因为它不是即时的。我认为.css()会立即“跳”到右边,而不会产生闪烁效果。

我不知道为什么这不起作用..而不是使用.css()我实际上必须使用.animate解决此问题:

$("#gallery ul").animate({right: posVar},0);

这是我的实际代码:

setTimeout(function(){
   var posVar = 2838;        
   $('#gallery ul').css("right", posVar);
}, 300);

这有什么问题?

CSS:

#gallery ul {
  display:block;
  position:relative;
  width:14000px; /*auto calculated from javascript */
}

4 个答案:

答案 0 :(得分:4)

Css属性:leftrighttopdown不适用于display:block try display:absolute或{{ 1}}

当我写下这个答案时,我不知道我的想法。我的意思是说......你需要display:fixedposition:absoluteposition:fixed

我认为您的代码存在的问题是最终没有“px”......

我已经搞砸了,这里是http://jsfiddle.net/Starx/8w6cS/

您的代码在这里工作是证明

http://jsfiddle.net/Starx/8w6cS/1/


如果你试图将你的position:relative移到2838px右边这是你的解决方案

http://jsfiddle.net/Starx/8w6cS/2/

答案 1 :(得分:4)

您的意思是position: absoluteposition: fixed。它虽然适用于显示块。

我尝试了以下代码,它可以工作:

setTimeout(function(){
    var posVar = 100;        
    $('#gallery ul').css({ right: posVar + 'px' });
},300);

答案 2 :(得分:2)

它应该工作。这是一个jsFiddle与您的示例代码,工作正常:http://jsfiddle.net/mathias/PjQBe/

请向我们提供更多代码。

答案 3 :(得分:0)

按如下方式更改CSS:

#gallery ul {
    display:block;
    position:relative;
    right:0px; /*THIS WILL DO THE TRICK FOR JQUERY */
    width:14000px; /*auto calculated from javascript */
}

现在你的jQuery代码会起作用!