2016-07-12 60 views
0

我有得到一個滾動效應的問題在Firefox中工作,我有它工作正常在Chrome,Safari和Opera使用此代碼,我看不出有什麼不對的'-moz-transform'代碼行。變換不能在Firefox工作與jQuery滾動效果

我已經在Firefox瀏覽器檢查,它只是顯示以下

element { 
    transform: rotate(0deg); 
} 

的旋轉值保持在零,我是相當新的jQuery和我不知道如何從這裏進行調試。請參閱我的代碼如下:

$(window).scroll(function(){ 


    var $cog = $('#my-div'), 
     $body = $(document.body), 
     bodyHeight = $body.height(); 

    $cog.css({ 
     'transform': 'rotate(' + ($body.scrollTop()/bodyHeight * -360) + 'deg)', 
     '-moz-transform': 'rotate(' + ($body.scrollTop()/bodyHeight * -360) + 'deg)', 
     '-webkit-transform': 'rotate(' + ($body.scrollTop()/bodyHeight * -360) + 'deg)', 
     '-o-transform': 'rotate(' + ($body.scrollTop()/bodyHeight * -360) + 'deg)' 
    }); 

}); 
+0

奇怪,'$( '身體')。scrollTop的()''報告中0' __Firefox 47__。在_Chrome_和_Edge_它報告正確的值。這可能是問題嗎?一個錯誤報告jQuery球員將按順序。 – beerwin

+0

你跟__Firefox__測試? – beerwin

+0

感謝會報告這個,你能解釋一下你如何看螢火這讓我可以更好地測試自己請 – jdh1285

回答

1

請使用此,並讓我知道萬一有任何問題。

$(window).on('scroll', function() { 
 

 
    var cog = $('div'), 
 
    body = $(document), 
 
    bodyHeight = body.height(); 
 

 
    cog.css({ 
 
    'transform': 'rotate(' + (body.scrollTop()/bodyHeight * -360) + 'deg)', 
 
    '-o-transform': 'rotate(' + (body.scrollTop()/bodyHeight * -360) + 'deg)', 
 
    '-moz-transform': 'rotate(' + (body.scrollTop()/bodyHeight * -360) + 'deg)', 
 
    '-webkit-transform': 'rotate(' + (body.scrollTop()/bodyHeight * -360) + 'deg)', 
 
    }); 
 

 
});
body { 
 
    min-height: 900px; 
 
} 
 
div { 
 
    transform: rotate(0deg); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    rotate this 
 
</div>

通常的原因是document.body的空是因爲你的標籤(*)已經遇到過執行腳本。沒有看到代碼,我不能肯定地說,但會是通常的原因。移動放置腳本的位置。

請訪問的詳細信息這個問題。

Why is document.body == null in Firefox but not Safari

+1

謝謝! – jdh1285