页面上有一个div,一开始是隐藏,我要执行的动画效果是div的left从500移动到300,并且fadeIn效果。
代码如下:
jQuery('body').append('<div id="test" style="top:100px;left:500px;width:100px;height:100px;background-color:#000;position:absolute;display:none"></div>');
$('#test').animate({left:300,opacity:'show'});除Firefox外,其他都正常。firefox下面div是从left为0的地方移动到300处。而且不管是jquery1.4还是1.5都有问题。
如果在firefox要实现一个这样动画,应该怎么写?
代码如下:
jQuery('body').append('<div id="test" style="top:100px;left:500px;width:100px;height:100px;background-color:#000;position:absolute;display:none"></div>');
$('#test').animate({left:300,opacity:'show'});除Firefox外,其他都正常。firefox下面div是从left为0的地方移动到300处。而且不管是jquery1.4还是1.5都有问题。
如果在firefox要实现一个这样动画,应该怎么写?
解决方案 »
- js右下角显示提示信息问题,求高手帮忙!急!!!!
- select标签指定了multiple属性,用javascript怎样如何对其动态赋值??(在线等)
- js怎样 获得当前选中位置元素的 html格式?
- 这个JavaScript正则表达式,怎么写?
- 求指导!
- 下面的除了IE,NS支持吗?
- 怎么通过小键盘的输入来实现对 select框里面显示内容的控制?
- 一个几乎没有希望解决的问题.
- 急!!如何用javascript实现渐变的彩虹字!!
- 不能颜色递减,要怎么改呢?
- <xueyi:equals name='isUserLog' yesValue='ShowInfo' noValue='SystemInfo'/>/";
- javascript代码问题
<script type="text/javascript">
$(document).ready( function() {
$("body").append('<div id="test" style="top:100px;left:500px;width:100px;height:100px;background-color:#000;position:absolute;display:none"></div>');
$('#test').animate({left:'-=200px',opacity:'show'});
});
</script>
多谢楼上的朋友了。
我刚刚看了一下jquery的源码,发现问题的地方,在开始执行动画之前,计算left的时候是通过getComputedStyle和getPropertyValue实现的。
我在firefox中测试的时候发现,当一个div的display设置为none的时候,通过getComputedStyle和getPropertyValue计算出来的left是0px,所以执行动画的时候是从左边开始的。其他浏览器计算left的结果都是正确的。你可以试试下面的javascript代码,看看firefox中是0px还是800px。
$('body').append('<div id="test" style="top:100px;left:800px;width:100px;height:100px;background-color:#000;position:absolute;display:none"></div>');
alert(window.getComputedStyle(document.getElementById('test'),null).getPropertyValue('left'));