一千萬個為什麽

搜索

jQuery代碼在Safari和Chrome中運行,但不適用於Firefox

我有一個網站有很長的推文列表,當你向下滾動時,右欄會跟著你,顯示推文上的統計數據。 (請參閱 http://www.grapevinegame.com 中的操作。點擊“記憶”,然後'跳過'進入列表頁面。在Safari和Chrome中運行)。

我正在使用jQuery更新右列的上邊距,隨著我向下滾動增加它。它似乎在基於webkit的瀏覽器中運行良好,但在Firefox中並沒有讓步。繼承代碼,右列元素是id =“distance”的div。

// Listen for scroll function
            $(window).scroll(function() {

                   //Calculating the position of the scrollbar
                    var doc = $("body"), 
                    scrollPosition = $("body").scrollTop(),
                    pageSize = $("body").height(),
                    windowSize = $(window).height(),
                    fullScroll = (pageSize) - windowSize;
                    percentageScrolled = (scrollPosition/fullScroll);

                    var entries = $("#whispers-list > li").length;

                   //Set position of distance counter
                    $('div#distance').css('margin-top', ($("#whispers-list").height()+$("#latest-whisper").height()+33)*percentageScrolled);

                   //Update distance counter
                        $('#distance-travelled').text(Math.round(distanceTravelled*(1-percentageScrolled)));            
                        $('#whispers-list li').each(function(index) {

                                //highlight adjacent whispers                               
                                if ($('#whispers-list li:nth-child('+(index+1)+')').offset().top >= $('#distance').offset().top && $('#whispers-list li:nth-child('+(index+1)+')').offset().top <= $('#distance').offset().top + $('#distance').height()) {
                                   //alert("yup");
                                    $('#whispers-list li:nth-child('+(index+1)+') ul').fadeTo(1, 1);
                                } else {
                                    $('#whispers-list li:nth-child('+(index+1)+') ul').fadeTo(1, 0.5);  
                                }
                              });               

                    });

感謝任何幫助或建議!

最佳答案

已更新!

似乎 $(“body”)。scrollTop()總是返回0,我認為是問題所在。

但是當我嘗試$(“html”)。scrollTop()時,它似乎正在返回正確的scrollTop。

嘗試將scrollPosition行更改為:

scrollPosition = $("html").scrollTop(), 

轉載註明原文: jQuery代碼在Safari和Chrome中運行,但不適用於Firefox