Cześć,
Zrobiłam ostatnio stronę scrollowaną. Po kliknięciu jednej z opcji w menu przewija stronę do wybranej sekcji.
Użyłam do tego skryptu js:
$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
});
});
Wszystko super działa, tylko na mojej stronie elementy <a> pojawiają się również poza menu i są to odsyłacze do linków zewnętrznych. Po podpięciu skryptu odsyłacze te przestały działać.
Spróbowałam poprawić skrypt wpisując w 3. linijce &('#menu>a') zamiast $('a') . Działa częściowo, tzn linki zewnętrzne zaczęły działać, a po wybraniu opcji menu przerzuca mnie na odpowiednią sekcję na stronie, ale już bez efektu animowanego przewijania. Bardzo zależy mi na tym efekcie.
Rozwiązał ktoś już kiedyś taki problem? wydaje mi się on dość typowy..