这里的主要目标是立即“跳”到右边。我不想使用.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 */
}
答案 0 :(得分:4)
Css属性:left
,right
,top
,down
不适用于display:block
try display:absolute
或{{ 1}} 击>
当我写下这个答案时,我不知道我的想法。我的意思是说......你需要display:fixed
或position:absolute
或position:fixed
我认为您的代码存在的问题是最终没有“px”......
我已经搞砸了,这里是http://jsfiddle.net/Starx/8w6cS/
http://jsfiddle.net/Starx/8w6cS/1/
如果你试图将你的position:relative
移到2838px右边这是你的解决方案
答案 1 :(得分:4)
您的意思是position: absolute
或position: 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代码会起作用!