Autor Zpráva
proste_johny
Profil
Zdravim.

Zavedl jsem na stranku plynule rolovani pomoci jquery-balicku a tohoto js kodu:

$(document).ready(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}, 1000);
                    
                    return false;
                
            }
            
        }
        
    });
    
});

Kod jsem prevzal z jinych stranek a upravil prvni radek, aby doslo k akci, az bude stranka nactena.
Funguje mi to. Presto mam trochu obavy, ze ten prevzaty kod je treba s chybami(
javascriptu moc nerozumim). Potrdite mi nekdo, zda je to v poradku?

Narazil jsem i na tuhle moznost, ktera je mi sympatictejsi,
ale nevim proc nefunguje (vztahuje se k celemu baliku jquery nebo jen jednomu pluginu?):
http://pinion.cz/plynule-scrollovani-s-jquery
joe
Profil
Fungovat budou oba dva, ale dá se to ještě zjednodušit, ale počítám s tím, že všechny odkazy, které odkazují někam na dané stránce začínají #, tedy <a href="#mojeSekce">

$(function () {
    
    $("a[href^=#]").click(function (event) {
        
        var $target = $(this.hash);
        if ($target.length) {
            
            event.preventDefault();
            
            $("html, body").animate({
                scrollTop: $target.offset().top
            }, 1000);
            
        }
        
    });
    
});
proste_johny
Profil
joe:

Diky..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0