2013-04-10 26 views
0

我正在開發一個單頁滾動網站和它的滾動很好。但是,無論何時我將滾動條移至頂部div,它都會將我帶到最上方的位置,但是每當我嘗試下去網站時,它都會掛起。讓我知道我在做什麼我的jQuery錯誤。我的scrollTop()jQuery方法一旦滾動就掛起瀏覽器

問題是Firefox的http://jsfiddle.net/swapnesh/jSa3z/下更狂野

腳本 -

<script> 
jQuery(document).ready(function(){ 
    $('section[data-type="background"]').each(function(){ 
     //assigning the object 
     var $bgobj = $(this); 

     $(window).scroll(function(){ 
      var yPos = $(window).scrollTop()/$bgobj.data('speed'); 

      var coords = '50%' + yPos + 'px'; 

      //Move the background 
      $bgobj.css({ backgroundPosition : coords }); 
     }) 
    }) 

    $(window).scroll(function(){ 
     if($(this).scrollTop() > 600) { 
      $('#scrollpage').fadeIn(); 
      $('#scrollpage').click(function(){ 
       $("html, body").animate({ scrollTop: 0 }, 600); 
       return false; 
      }) 
     } 
     else { 
      $('#scrollpage').fadeOut(); 
     } 
    }) 
}) 
</script> 

HTML

<section id="home" data-type="background" data-speed="10" class="pages"> 
    <article>Swapnesh Sinha</article> 
</section> 

<section id="about" data-type="background" data-type="10" class="pages"> 
    <article>Web Developer - PHP, MYSQL, WORDPRESS</article> 
</section> 

<div id="scrollpage"></div> 
+2

你一個循環,這意味着事件處理程序被執行多次內部分配事件處理程序的窗口。 – adeneo 2013-04-10 12:49:58

+0

@adeneo thx的有用評論+1 :) – swapnesh 2013-04-10 15:22:27

回答

1

的scrollPage元素不動態創建的,所以你只需要連接時鐘事件處理程序一次(在窗口sc之外)卷事件處理程序)

$('#scrollpage').click(function(ev){ 
    ev.preventDefault(); 
    $("html, body").animate({ scrollTop: 0 }, 600); 
}) 

$(window).scroll(function(){ 
    if($(this).scrollTop() > 600) { 
     $('#scrollpage').fadeIn(); 
    } 
    else { 
     $('#scrollpage').fadeOut(); 
    } 
}) 

更新小提琴:http://jsfiddle.net/jSa3z/3/

+0

@cernumnos Thx爲答案+ 1和綠色勾號:) – swapnesh 2013-04-10 15:23:26

相關問題