To powinno być dość podstawowe pytanie, ale rzuciłem większość mojego poranka na to i już jestem blisko rzucania ręcznikiem. Nie mam jeszcze trochę js foo - ale znalazłem ładnie skomentował fragment kodu, który mam nadzieję wykorzystać do animowania kotwica linki to:Zliczanie ustalonego nagłówka za pomocą animate.scrolltop i (target) .offset(). Top;
$(document).ready(function() {
$('a[href*=#]').bind('click', function(e) {
e.preventDefault(); //prevent the "normal" behaviour which would be a "hard" jump
var target = $(this).attr("href"); //Get the target
var scrollToPosition = $(target).offset().top;
// perform animated scrolling by getting top-position of target-element and set it as scroll target
$('html, body').stop().animate({ scrollTop: scrollToPosition}, 600, function() {
location.hash = target; //attach the hash (#jumptarget) to the pageurl
});
return false;
});
});
Próbuję zmusić go do 30px ziemia nad offsetu() szczycie. - próbowałem
$('html, body').stop().animate({ scrollTop: scrollToPosition -30}, 600,
które prawie działa - to idzie we właściwym miejscu, ale potem odbija z powrotem.
Próbowałem zostały również
scrollTop: $(target).offset().top - 20 },
Próbowałem zostały również
scrollTop: $(hash).offset().top + $('#access').outerHeight()
co nie wydaje się, aby cokolwiek zmienić.
Wygląda na to, że odpowiedź może być tutaj: JQuery page scroll issue with fixed header, ale po prostu nie mogę tego uzyskać.
Wiem, że to jest podobne do innych pytań - ale przeszedłem to, co mogłem znaleźć, i jestem analfabetą, że nie mogłem skopiować ani wkleić niczego, co rozwiązało problem.
Byłbym niezwykle wdzięczny za rozwiązanie.
Dziękujemy,
Martin
PS
Ten drugi fragment kodu znalazłem działa ale to stripping hashtag na zewnątrz, co sprawia, że w większości bezużyteczne.
$(function(){
$('a[href*=#]').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
&& location.hostname == this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
if ($target.length) {
var targetOffset = $target.offset().top;
$('html,body').animate({scrollTop: targetOffset - 30}, 1000);
return false;
}
}
});
});
Dziękuję bardzo Steve. Przysięgam, że nauczę się wystarczająco dużo, aby zrozumieć, co robię, i mam nadzieję, że w tym roku, ale to uratowało mnie bez końca bólów głowy. Cheers -m – Martin
Szybkie pytanie: Kod działa idealnie, ale hash dodany do adresu URL pojawia się jako "#undefined" - jakieś pomysły? – Martin
Bez zmartwień. Po prostu trzymaj się tego, regularnie przechodź do dobrych samouczków online, a zdobędziesz wiedzę, której szukasz! Defo sprawdź strony tutsplus ([Webdesigntuts] (http://webdesign.tutsplus.com/), [Nettuts] (http://net.tutsplus.com/)) i [Team Treehouse] (http: // teamtreehouse .com /) projektowanie stron internetowych/nauka rozwoju od Carsonified, wszystkie świetne darmowe zasoby. –