ich den folgenden Code bin mit der Bewegung zu glätten, wenn der Benutzer auf einen Link, dass seine href
beginnt mit einem „#“jQuery: Das Hinzufügen der scrollTop zusätzlichen Pixel
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function() {
window.location.hash = target;
});
});
});
klickt muss ich über 40px hinzufügen zum ScrollTop-Wert, so dass der Haltepunkt den Inhalt abdeckt. Ich änderte den Code zu diesem, aber es scheint nicht zu sein, es zu tun (die 40 in Richtung Ende des Codes feststellen):
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top + 40
}, 900, 'swing', function() {
window.location.hash = target;
});
});
});
Sie haben '+ 40' in der richtigen Stelle. Was passiert? –
Ich habe gerade hinzugefügt, dass 40 zurück, bitte schauen Sie. Egal welchen Wert ich hinzufüge, es stoppt an der gleichen Stelle. – farjam
Haben Sie überprüft, dass $ target.offset(). Top den erwarteten Wert zurückgibt? –