2013-11-27 112 views
3

我寫了這個滾動到頂部腳本。一切都很好,但沒有溢出:我已經應用到我的包裝div的滾動。我需要溢出的原因:滾動是因爲我有溢出:隱藏的HTML /身體標記。這對我的自定義滾動條來說至關重要。我知道這會干擾這個腳本,但爲什麼?滾動到頂部的腳本不與​​溢出一起工作:滾動

該腳本只能部分正常工作。向下滾動時出現「滾動到頂部」,但點擊它後,它不會到頂部。

我在做什麼錯?

這是JavaScript:

<script>    
     jQuery(document).ready(function() { 
      var offset = 220; 
      var duration = 500; 
      jQuery(window).scroll(function() { 
       if (jQuery(this).scrollTop() > offset) { 
        jQuery('.back-to-top').fadeIn(duration); 
       } else { 
        jQuery('.back-to-top').fadeOut(duration); 
       } 
      }); 

      jQuery('.back-to-top').click(function(event) { 
       event.preventDefault(); 
       jQuery('#wrapper').animate({scrollTop: 0}, duration); 
       return false; 
      }) 
     }); 
    </script> 

我的CSS

<style> 
     .back-to-top { 
      position: fixed; 
      bottom: 2em; 
      right: 0px; 
      text-decoration: none; 
      color: #000000; 
      background-color: rgba(235, 235, 235, 0.80); 
      font-size: 12px; 
      padding: 1em; 
      display: none; 
     } 
    </style> 

,最後是HTML:

<a href="#" class="back-to-top">Back to Top</a> 
+0

您是否獲得在JavaScript控制檯的任何錯誤? –

+1

似乎在這裏工作:http://jsfiddle.net/L86yf/2/(稍作調整) –

+0

在螢火蟲沒有錯誤,一切都很好。 –

回答

0

您的問題就在這裏:

jQuery(window).scroll(function(){ 
    if (jQuery(this).scrollTop() > offset) { } 
}); 

你怎麼做,如果「窗口」對象已滾動的檢查,如果當前頂偏比我的大「偏移」的變量,但你嘗試「#wrapper指定的內部滾動」。

你應該做的是檢查是否滾動了「#wrapper」並且它是否達到偏移量。

編輯:如果你要滾動的「窗口」的對象,你應該動畫「身體」的DOM元素像下面;)

$('body').animate({scrollTop: 0}, duration);