2014-03-26 209 views
1

我在Firefox和IE瀏覽器中的scrolltop有一些問題 我在我的代碼中使用了scrolltop超過2次它的工作原理,但在第二部分中並沒有 我有兩個箭頭「next」和「prev」,當他們點擊頁面滾動到特定部分, 我找不到我該如何解決它?scrollTop不能在Firefox和IE中工作

的jQuery:

var lchiled=$("ul#portfolio li").last(); 
var fchiled=$("ul#portfolio li").first(); 
$('li.section').first(); 
$("ul#portfolio li:first-child").addClass("current"); 

$('a.display').on('click', function(e) { 
    e.preventDefault(); 

    var t = $(this).attr('name'); 

    that = $(this); 


    if (t === 'next') { 
     if($('.current').next('.section').length==0) 
      var $next = $('li.section').first(); 
     else 
      var $next = $('.current').next('.section'); 

     var top = $next.offset().top -65; 
     $('.current').removeClass('current'); 

     $('body,html').animate({ 
     scrollTop: top, 
     }, 

     function() { 
     $next.addClass('current'); 
     // alert(top); 
     }); 
    } 
    else if (t === 'prev' && $('.current').prev('li.section').length > 0) { 
     var $prev = $('.current').prev('.section'); 
     var top = $prev.offset().top -65; 
     $('.current').removeClass('current'); 

     $('body').animate({ 
      scrollTop: top,  
     }, function() { 
      $prev.addClass('current'); 
     }); 
    } 

}); 

HTML:

<div id="container"> 

    <ul id="portfolio" class="clearfix"> 

    </ul> 

</div> 

LIS動態與jquery代碼

+0

你有一個鏈接,我們可以看到這個(用CSS)? – mayrop

+0

@mayrop不,它是本地的 – mkafiyan

回答

6

它必須是這樣的

$('body,html').animate({ 
     scrollTop: top,  
    }, function() { 
     $prev.addClass('current'); 
    }); 

insted的的

$('body').animate({ 
     scrollTop: top,  
    }, function() { 
     $prev.addClass('current'); 
    }); 

我忘了所以這個問題發生在更新上一個部分。

-1

產生嘗試var offset = $(window).scrollTop();這一點。

+0

它劑量的答案,但我找到了問題! – mkafiyan

+0

@Ashwani,這是比實際答案更多的評論。請使用評論選項,如果你沒有足夠的聲望,請等待,直到你得到它。 –

1

您在兩個位置上scrollTop使用.animate可以使用。在一箇中,您(正確)使用html,body作爲選擇器。另一方面,您只能使用body。你想知道爲什麼它在某些瀏覽器中不起作用;)

+0

是的,正確的...... – mkafiyan

相關問題