Scroll na specifičen element id

Vem, da obstaja ogromno tega že spisanega, ampak ne najdem za dotičen primer.

Na vrhu strani želim izpostaviti 4 gumbe (ali linke, ni pomembno), po kliku na določenega pa se seveda stran poscrolla navzdol, na določen naslov.

Button1 na heading id=1
Button2 na heading id=2
Button3 na heading id=3.....

Ima kdo povezavo, nasvet,... Hvala lepa.

28 odgovorov

Enkrat uporabljaš:
jQuery(document).ready ....

drugič pa če spremenim mesto:
$(document).ready ...

torej vse $ sem spremenil v jQuery, vendar brez uspeha :/

In napaka je?

Zdaj napake sicer ne javi, vendar ne deluje. V fiddle pa deluje normalno. Kaj bi lahko blo?

Koda za preverit, ali jQuery deluje, pa dela normalno.

Kaj vse sem poskusil- v vsakem primeru zamenjal tudi $ z jQuery:

jQuery('a[href^="#"]').click(function(){
jQuery('body').animate({
scrollTop: jQuery(jQuery(this).attr('href')).offset().top - 30
}, 500);
});

jQuery(document).ready(function() {
$('a[href^="#"]').click(function(){
$('body').animate({
scrollTop: $($(this).attr('href')).offset().top - 30
}, 4000);
});
});

$('a[href^="#"]').click(function(){
$('body').animate({
scrollTop: $($(this).attr('href')).offset().top
}, 500);
return false;
});

jQuery(document).ready(function($) {
$('a[href^="#"]').click(function(){
$('body').animate({
scrollTop: $($(this).attr('href')).offset().top - 30
}, 4000);
});
});

<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
$('a[href^="#"]').click(function(){
$('body').animate({
scrollTop: $($(this).attr('href')).offset().top
}, 500);
return false;
});
});
</script>

A imaš še kakšno skripto, ki bi mogoče uporabljala $. V vsakem primeru poskusi takole

jQuery.noConflict();
(function($) {
   $(function() {
      // more code using $ as alias to jQuery
   });
})(jQuery);

Tole je copy paste z jQuery strani, jaz vedno to uporabljam in načeloma nimam problemov.

1

ne ne dela, hvala vseeno

edit: dela!

hvala. Je pa problem, da ne morem nastaviti hitrosti scrolla, popolnoma drugače kot v SlimDeluxovem fiddlu. Očitno je nek konflikt z drugo skripto, ne?

Če bi bil konflik ti verjetno noben js na strani ne bi delal. Na hitro sem pogledal fiddle in bi ti moralo delat, ker v bistvu samo spreminjaš trajanje animate funkcije

$('xx').animate({kaj animairaš}, kolikoCasaTrajaVms);

Sicer pa poglej v konzolo če ti kaj javi oz. poskusi še v kakšnem brskalniku. Brez, da bi videl zadevo ti težko kaj povem.

1