Javascript CSS转换实际上是什么时候设置的?

Javascript CSS转换实际上是什么时候设置的?,javascript,css,browser,Javascript,Css,Browser,我正在使用CSS转换制作一个简单的滑块。 它就像 将下一张幻灯片翻译为100% 将转换添加到当前和下一个 在0旁边转换,当前幻灯片转换为-100% 删除过渡 问题是下一张幻灯片永远不会被翻译。它似乎在Chrome中运行良好,但在Firefox中却不行。我的问题是,浏览器真正设置转换需要多长时间 var curSlide = slides[index].style; var nextSlide = slides[index + 1].style; nextSlide['transform'] =

我正在使用CSS转换制作一个简单的滑块。 它就像

  • 将下一张幻灯片翻译为100%
  • 将转换添加到当前和下一个
  • 在0旁边转换,当前幻灯片转换为-100%
  • 删除过渡
  • 问题是下一张幻灯片永远不会被翻译。它似乎在Chrome中运行良好,但在Firefox中却不行。我的问题是,浏览器真正设置转换需要多长时间

    var curSlide = slides[index].style;
    var nextSlide = slides[index + 1].style;
    
    nextSlide['transform'] = 'translateX(100%)'; // never occurs
    
    //Giv it some time ??? How long ???
    setTimeout(function(){
    
        nextSlide['transition'] = 'transform 0.2s'; 
        curSlide['transition'] = 'transform 0.2s'; 
    
        nextSlide['transform'] = 'translateX(0)';
        curSlide['transform'] = 'translateX(-100%)';
    
    },0);// if timeout is set to 100ms it works fine
    

    解决方案是在下一次翻译之前强制回流

    console.log(elementTranslated.offsetHeight);
    

    由于这个问题,解决方案是在下一次翻译之前强制回流

    console.log(elementTranslated.offsetHeight);
    
    多亏了这个问题