使用javascript调整包含浮点数的div的大小时,浮点数不';回流焊

使用javascript调整包含浮点数的div的大小时,浮点数不';回流焊,javascript,css,css-float,Javascript,Css,Css Float,我有一个容器div,它可以容纳20多个div,这些div向左浮动。当我使用Tween.js通过javascript动画调整父div的大小时,浮动不会回流到新的大小,除非我将鼠标移到其中一个div上 似乎有什么东西阻止了页面刷新 我在想也许有一种方法可以通过javascript强制显示更新 更新: 我把它放在小提琴上: 单击任意缩略图以切换动画。 此版本使用TweenLite为#项目容器的“左”CSS设置动画。请注意,在动画之后必须移动鼠标才能使容器的内容回流 我在Safari5+OSX和Chr

我有一个容器div,它可以容纳20多个div,这些div向左浮动。当我使用Tween.js通过javascript动画调整父div的大小时,浮动不会回流到新的大小,除非我将鼠标移到其中一个div上

似乎有什么东西阻止了页面刷新

我在想也许有一种方法可以通过javascript强制显示更新

更新:

我把它放在小提琴上:

单击任意缩略图以切换动画。 此版本使用TweenLite为#项目容器的“左”CSS设置动画。请注意,在动画之后必须移动鼠标才能使容器的内容回流

我在Safari5+OSX和Chrome20+OSX中得到了这个结果。在Firefox 13.0 OSX中正常工作

更新2

我看到的视频:

正如你所说,我能够重现你的问题。这似乎是webkit在动画或过渡后重新绘制或测量元素的问题

无论如何,这不是最好的解决方案,但至少目前它会起作用,希望我的发现能帮助其他人找到更多

如果向动画中添加一个onComplete,并触发.project mouseleave,它看起来工作正常:

function completeAnimate(){
        $('.project').trigger('mouseleave');
    }

    function contract(){

        // PROJECTS CONTRACT RIGHT
        TweenLite.to($('#projects-container'), .5, {css:{left:"300px", opacity:".5"}, ease:Expo.easeInOut, onComplete: completeAnimate});
    }

jQuery animate()和css关键帧动画的效果与您正在使用的Tween代码相同,但是,直接样式更新可以正常工作

$('#projects-container').css('left','300px'); 
这一点都没有问题,但当然,也没有动画

我还注意到,如果去掉.project事件绑定,它仍然不能正确地重新绘制,但是如果移动鼠标,它仍然不能正确地重新绘制。它只是保持这种状态

我还尝试使用一些通常用于强制重画的技巧来强制重画元素。我在动画开始后的一段时间内尝试了这一点,但没有成功

您还可以将两个tweens合并为一个,并在两个tweens上设置属性,仅供参考


希望这能帮助人们找到webkit转换的真正问题。

你能在这里发布你的标记吗?你使用哪种浏览器?您在其他浏览器上测试过吗?尝试为内部div设置
位置:relative
。并尝试将您的代码上传到JSFIDLE。请向我们展示代码或屏幕截图。谢谢大家。请参阅更新,并回复您的所有评论@洛勒,位置:亲戚帮不上忙。