Diskuze: Posunutá kotva
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 20 zpráv z 20.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Jestli nevadí že je to odkaz na SO http://stackoverflow.com/…on-of-anchor
postup pomoci jquery zjistíš pozoci té kotvy pomocí funkce position a pak pomoci scrolltop odskroluješ na požadovanou pozici
$('.anchor').click(function(event){
var pos = $('#anchor').position();
$('body').scrollTop( pos.top -10);
event.preventDefault();
});
Já jquery neznám ale chápu to správně, že místo .anchor patří class odkazu na kotvu a #anchor nahradí id kotvy? Protože tak mi to nějak nejde. Chybová hláška nedefinovaná funkce.
Tak né tohle je v pohodě. Ale nějak divně mi to počítá. Má to fungovat tak, že je odskroluje - 10px nad tu kotvu? Protože mi to leze úplně jinam. Asi o 280 px nahoru. Viz https://mombo.cz/chorvatsko tlačítko ohodnotit oblast.
budeš muset opravit všechny chyby které najdeš v konzoli a pak použij toto
$('#ohodnotit_oblast').click(function (event) {
var pos = $('#comment-form').position();
$('html').scrollTop(pos.top -60);
event.preventDefault();
});
Díky, s těma chybama právě bojuju. Nějak mě zradil Drupal . Všechno jsem měl v pohodě a po udatu mi tam naskákala spousty chyb v konzoli a já moc nevím co s tím. Snad to nějak vyřeším. S tím html to nejde vůbec ale nevím zda to teda není těma chybama. A ještě bych si dovolil trochu otravovat.Šel by ten posun nějak jednoduše animovat?
toto
$('html').scrollTop(pos.top -60);
nahradíš tímto
$('html').stop().animate({scrollTop:(pos.top -60)}, '1000', 'swing');
Tak chyby v konzoli jsem opravil ale problém zůstal stejný. Jak odskrolování na špatné místo tak nefunkčnost s html namísto body. :/
máš stale stále chyby konzole píše několik neočekávaných značek
a použij toto
$('html, body').stop().animate({scrollTop: (pos.top - 60)}, '1000', 'swing');
výpočet (pos.top - 60) je pozice kam se ma scrollovat pak si uprav o kolik chceš scrollovat a mělo by se odčítat pokud chceš posouvat na horu
Narazil jsem ještě na další problém. Script nefunguje z důvodů nenačtené knihovny jQuery. Ta se načítá až na konci HTML. Mysle jsem, že to jde vyřešit pomocí window.onload = function() nebo defer ale ani jedno nepomůže. Pouze ručně vložit knihovnu ještě před script. Jak to tedy mám řešit aby script počkal na načtení jQuery? Díky https://mombo.cz/chorvatsko
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<title>xxx</title>
</head>
A súbor jquery.js si nakopíruj do js/, ktorá je v zložke projektu.
To si nerozumíme, já tam script jQuery vkládám. Ale až na na konci HTML respektive to tak dělá CMS a na začátek to dávat nechci.
To si nerozumieme. Ja programujem stranku cez pspad editor.
Ja považujem JS za plnohodnotný jazyk na riešenie webu.
Podívej, jQuery musíš načíst dřív než se provede tvůj kód. Nejlepší bude ten tvůj kód vložit až po jQuery
V Drupalu se všechny knihovny načítají jako poslední v HTML. Asi správné řešení tedy bude napsat to do samostatného souboru a načíst ho až po jQuery. A nebo vzhledem k tomu, že je to pár řádků by se vyplatilo víc hodit to jQuery někam na začátek?
Ne, na začátek ne. Leda že bys jí dal ne jako deffer ale async ... Spíš dej to svoje pod ní.
Zobrazeno 20 zpráv z 20.