Autor Zpráva
Monkeys
Profil *
Riesim jeden problem a neviem si rady.

Mam jednostrannu stranku po ktorej sa chcem pohybovat scrollovanim na zaklade kotiev.
Menu mam napoziciovane relativne a po zoscrollovani o 200 px sa mi zmeni na position fixed aby bolo vzdy na vrchu.

Problem:
Pri kazdom odkaze v menu mam href="#kotva"
V javascripte to riesim takto.

$('.menu a').click(function(event){
event.preventDefault();

var anchorId = $(this).attr("href"),
    target = $(anchorId).offset().top;

$("html, body").animate({scrollTop : target }, 1000 );
});

Funguje to dovtedy dokedy sa menu nezmeni na fixed (teda po zoscrollovani). Potom target pocita bludy a posuva ma to hocikam.
Chcem sa preto opytat odkial pokial pocita offset().top vysku ? je to od kotvy po horny okraj prehliadaca, alebo od kotvy po fixne napoziciovany div?

vdaka
M.
Chamurappi
Profil
Reaguji na Monkeyse:
Chcem sa preto opytat odkial pokial pocita offset().top vysku ?
Metodou getBoundingClientRect() zjistí pozici elementu v rámci zobrazovací plochy prohlížeče a přičte k ní současný stav odrolování. Takže je to pozice ve vztahu k levému hornímu rohu stránky.

Potom target pocita bludy a posuva ma to hocikam.
A on ti ten element poskočí? Proč? Udělej to tak, aby neposkakoval. Pokud něčemu změním pozicování ze statického na fixní, tak většinou dám na původní místo nějakou stejně velkou vycpávku. Nebo nemám vůbec statické pozicování, jen absolutní přepínané na fixní.
Monkeys
Profil *
Chamurappi:
Vdaka za odpoved

Ja sa stym este hram a zistujem ze vobec mi nereaguje udalost $(window).scroll;
Zapisane to mam takto.

$(document).ready(function(){
  $(window).scroll(function(){
    console.log("test");
  });
});


Zabudol som oznacit kod
Moderátor juriad: Opraveno.
Monkeys
Profil *
No po 2 dlhych dnoch som to vyriesil.

Problem bol v deklaracii css stylu body.
preto nefungoval ani $(window).scroll

moja povodna deklaracia bola
html, body { padding:0; margin:0; font-size:100%; overflow:auto; height:100%;  }

po prepisani deklaracie na toto
html, body { padding:0; margin:0; font-size:100%; overflow:auto; height:auto; min-height:100%; }
vsetko funguje ako ma :)

Ujo GOOGLE pomohol a usetril mi kopu problemov!

M.

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