Autor Zpráva
_Martin
Profil *
Ahoj,

mám odkaz ve tvaru www.example.com/uvod#kontakt

Jak se dá prohlížeči zabránit, aby najel na kotvu? Používá jQuery a tak jsem zkoušel

$(window).load(function() {
  if(window.location.hash) {
    $(window).scrollTop(0);
  }
});

To funguje dobře ve Firefoxu, ale Chrome sjede na kotvu a pak skočí nahoru. Není to pěkné, když takhle stránka skáče. Jaké používáte řešení vy?


Ukázka je k dispozici zde: http://jsbin.com/ajafor/4#hello při detailnějším pozorování si můžete všimnout jak posuvník jede dolu a pak rychle nahoru.
Chamurappi
Profil
Reaguji na _Martina:
Jaké používáte řešení vy?
Žádné. Vůbec nechápu, proč bych tomu měl chtít zabránit.

Kdybych to opravdu potřeboval, vypsal bych kotvu s location.hashem na začátek stránky. Ale pak bych se bál, že to rozbije skripty ve starších Explorerech.
_Martin
Profil *
Žádné. Vůbec nechápu, proč bych tomu měl chtít zabránit.

Mám několik skupin polí. Z každé si javascriptem vyberu nadpis skupiny (legend) a id fieldsetu. Následně vytvořím horizontální záložky. Každá záložka je odkaz s kotvou (#fieldset-id). Při kliknutí na záložku se zobrazí příslušná skupina (ostatní jsou skryté). Rád bych, aby si uživatelé mohli posílat odkazy na konkrétní záložky a při načtení stránky byl obsah naskrolovaný nahoru.

Problém pak nastává v tom, že prohlížeče vždy sjednou přímo na záložky a vršek stránky není vidět.


Zatím jsem dospěl k tomuto.
  $(document).ready(function() {
    if(window.location.hash) {
        var hash = window.location.hash.substring(1);
        window.location.hash = '';
        $('#' + hash).attr('id', '');
        window.location.hash = hash;
    }
  });

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Prosím používejte diakritiku a interpunkci.

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

0