używam tego skryptu jQuery zrobić Płynne przewijanie (Znalezione na CSS-Tricks.com):jQuery Płynne przewijanie na wczytywania strony
/** Smooth Scrolling Functionality **/
jQuery(document).ready(function($) {
function filterPath(string) {
return string
.replace(/^\//,'')
.replace(/(index|default).[a-zA-Z]{3,4}$/,'')
.replace(/\/$/,'');
}
var locationPath = filterPath(location.pathname);
var scrollElem = scrollableElement('html', 'body');
var urlHash = '#' + window.location.href.split("#")[1];
$('a[href*=#]').each(function() {
$(this).click(function(event) {
var thisPath = filterPath(this.pathname) || locationPath;
if ( locationPath == thisPath
&& (location.hostname == this.hostname || !this.hostname)
&& this.hash.replace(/#/,'')) {
var $target = $(this.hash), target = this.hash;
if (target) {
var targetOffset = $target.offset().top;
event.preventDefault();
$(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
location.hash = target;
});
}
}
});
});
// use the first element that is "scrollable"
function scrollableElement(els) {
for (var i = 0, argLength = arguments.length; i <argLength; i++) {
var el = arguments[i],
$scrollElement = $(el);
if ($scrollElement.scrollTop()> 0) {
return el;
} else {
$scrollElement.scrollTop(1);
var isScrollable = $scrollElement.scrollTop()> 0;
$scrollElement.scrollTop(0);
if (isScrollable) {
return el;
}
}
}
return [];
}
});
/** END SMOOTH SCROLLING FUNCTIONALITY **/
Działa fantastyczne, z wyjątkiem jednej rzeczy, chcę go do działa tam, gdzie ktoś podchodzi bezpośrednio pod adres URL, np http://domain.com/page.html#anchor
płynnie przewija do tej kotwicy od góry na stronie ładowania, teraz natychmiast przechodzi do zakotwiczenia strony, chyba że kliknęli na kotwicę. Mam nadzieję, że ma to sens.
To działa podobnie do funkcji w moje pytanie, ale to nie rozwiązuje problemu, jeśli nawigować bezpośrednio do zakotwiczenia domeny (http://domena.com/page.html#anchor natychmiast przechodzi do zakotwiczenia, jeśli wpiszesz je w adres URL, zamiast gładkiego przewijania do niego.) – Talon
Możesz użyć animacji dla tego – PSR
@ Talon i aktualizacja mój kod sprawdzam teraz raz. Działa on zgodnie z potrzebami teraz – PSR