2016-07-24 12 views
0

Ich habe dieses Skript in jQuery, es scrollt zu gewünschten Abschnitt, aber mit Abstand nach oben. Es funktioniert gut auf allen getesteten Browsern ... außer Firefox.preventDefault, Scrollen bei Firefox

$('nav > *').click(function(event){ 
    event.preventDefault(); 
    var navClicked = $(this).index(); 
    var elem = $(this).attr("href"); 
    $('body').scrollTop($(elem).offset().top - 48); 
}); 

https://jsfiddle.net/5L3xyuuv/1/

+2

Fügen Sie auch Ihre HTML-Codes hinzu oder erstellen Sie eine JSFiddle. – frnt

+0

@frnt https://jsfiddle.net/5L3xyuuv/1/ –

+0

was für eine Testseite ist das? es ist fast leer und reproduziert das Problem nicht – vsync

Antwort

0

Hier ist diese versuchen, fügen Sie HTML und BODY-scrollTop() Verfahren, das funktioniert perfekt auf allen Browser.

$('nav > *').click(function(event){ 
 
    event.preventDefault(); 
 
    var navClicked = $(this).index(); 
 
    var elem = $(this).attr("href"); 
 
    $('html,body').scrollTop($(elem).offset().top - 48); 
 
});
nav { 
 
    width: 100%; 
 
    height: 48px; 
 
    background-color: red; 
 
    position: fixed; 
 
    top:0; 
 
} 
 

 
#about{ 
 
    width:400px; 
 
    height:400px; 
 
    background:#111; 
 
} 
 

 
#benefits{ 
 
    width:400px; 
 
    height:400px; 
 
    background:#ccc; 
 
} 
 

 
#team{ 
 
    width:400px; 
 
    height:400px; 
 
    background:#f22; 
 
} 
 

 
#path{ 
 
    width:400px; 
 
    height:400px; 
 
    background:#f2f; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav> 
 
    <a href="#about">about</a> 
 
    <a href="#benefits">benefits</a> 
 
    <a href="#team">team</a> 
 
    <a href="#path">path</a> 
 
</nav> 
 

 
<div id="about"></div> 
 
<div id="benefits"></div> 
 
<div id="team"></div> 
 
<div id="path"></div>

+0

Ihr Schnipsel funktioniert gut, aber wenn es nicht in mein Snippet kopieren, funktioniert es nicht –

+0

Ich konnte keinen Fehler in meiner Konsole finden. – frnt

+0

Könnte es sein, dass andere jquery-Skripte dies verursachen, aber nur auf Firefox? –

0

$ (document) .scrollTop (...); löst das Problem.

Verwandte Themen