IT pro otrlé
Moderátor: Faskal
Re: IT pro otrlé
It is often the case that those who strongly advocate for social causes are driven less by a feeling of compassion towards the poor and weak, but more by a feeling of hate towards the rich and powerful.
Re: IT pro otrlé
Jak tak na to koukám, nemáš tam nalinkované jquery. Bez jquery nemůžeš psát jquery. Upravil jsem fiddle: https://jsfiddle.net/wn5f6xaj/1/
Aby bylo vidět, že to něco dělá, tak se to tam přehazuje na 28 místo 280 pixelech.
Aby bylo vidět, že to něco dělá, tak se to tam přehazuje na 28 místo 280 pixelech.
OnGe tu není, je tu jenom Zuul
Re: IT pro otrlé
Malá rejpavá poznámka (ok, víc poznámek).
Tohle:
Je lehce obfuscovanej kód - nutí to se zastavit a zamyslet, co tím vlastně básník chtěl říct.
V prvé řadě scrollTop() není integer, ale float, takže to může bejt klidně 28.39 nebo tak něco. Kód zafunguje, vleze to prostě do druhé větve, ale není to intuitivní. Když chci pokrýt všechna čísla, tak je lepší napsat něco jako:
A to teda taky není úplně ideální, protože až to bude někdo upravovat, tak se mu snadno může stát, že přepíše třeba tu druhou podmínku a ne tu první - a bude se divit, proč to nedělá, co chce.
Ideální je to teda takhle:
Z toho je fakt jasně vidět, že to má pokrýt všechny možné hodnoty.
Další věc: Vždycky je lepší nepoužívat natvrdo zadané konstanty. Místo '280' bych tam dal výšku toho menu baru, nebo pozici, nebo co že to těch 280 představuje. Výhoda je, že když si pak přeskládáš html, tak ti to bude fungovat i bez přepisování konstanty.
A ještě k té konstantě: Když už musíš použít konstantu, tak je dobrý nepsat do kódu přímo číslo, ale založit na to proměnnou a nějak rozumně ji pojmenovat. Např.:
Díky tomu je pak hned vidět, co to číslo znamená.
Tohle:
Kód: Vybrat vše
if ($(window).scrollTop() > 28) ...
if ($(window).scrollTop() < 29) ...
V prvé řadě scrollTop() není integer, ale float, takže to může bejt klidně 28.39 nebo tak něco. Kód zafunguje, vleze to prostě do druhé větve, ale není to intuitivní. Když chci pokrýt všechna čísla, tak je lepší napsat něco jako:
Kód: Vybrat vše
if (cosi > x) ...
if (cosi <= x) ....
Ideální je to teda takhle:
Kód: Vybrat vše
if (cosi > x)
{
}
else
{
}
Další věc: Vždycky je lepší nepoužívat natvrdo zadané konstanty. Místo '280' bych tam dal výšku toho menu baru, nebo pozici, nebo co že to těch 280 představuje. Výhoda je, že když si pak přeskládáš html, tak ti to bude fungovat i bez přepisování konstanty.
A ještě k té konstantě: Když už musíš použít konstantu, tak je dobrý nepsat do kódu přímo číslo, ale založit na to proměnnou a nějak rozumně ji pojmenovat. Např.:
Kód: Vybrat vše
const MENU_BAR_POSITION = 280;
if ($(window).scrollTop() > MENU_BAR_POSITION)
{
}
else
{
}
Naposledy upravil(a) York dne 10. 1. 2019, 12:47, celkem upraveno 2 x.
Re: IT pro otrlé
Pak bych ještě doporučil dát těm divům idčka a adresovat je přes ně.
Tohle:
Totiž vyhledá v dokumentu všechny elementy, které mají css class 'navbar'. Takže když tam těch navbarů budeš mít víc, všechny najednou ti budou skákat nahoru (a nevšimneš si toho, protože se budou překreslovat přes sebe).
A doporučuju jako cvičení, zkusit si to celé přepsat bez jquery - poslední dobou se začínají množit doporučení přestat ji používat, takže je fajn vědět, jak to samý udělat v plain javascriptu.
PS: OnGe, imho by Naokimu docela pomohlo, kdybys popsal, jak jsi to debugoval (nebo to bylo jen tou chybějící jquery?).
Tohle:
Kód: Vybrat vše
$('.navbar')
A doporučuju jako cvičení, zkusit si to celé přepsat bez jquery - poslední dobou se začínají množit doporučení přestat ji používat, takže je fajn vědět, jak to samý udělat v plain javascriptu.
PS: OnGe, imho by Naokimu docela pomohlo, kdybys popsal, jak jsi to debugoval (nebo to bylo jen tou chybějící jquery?).
Re: IT pro otrlé
Rozdělil jsem to, aby se to dalo vyznat a koukám, že tam není jquery. Žádnej velkej kyberpunk se neudál
OnGe tu není, je tu jenom Zuul
Re: IT pro otrlé
Aha, jasně.
Naoki: Když si v té tvojí verzi otevřeš degugovací tooly (v chromu je to ctrl+shift+j), tak v konzoli uvidíš tuhle hlášku:
Kód: Vybrat vše
Uncaught ReferenceError: $ is not defined
at VM19:47
edit: Obecně když děláš cokoliv v prohlížeči, tak je dobrý mít při tom otevřenou debugovací konzoli, protože tam se vypisujou všechny errory. Můžeš si tam taky vypisovat vlastní ladící hlášky přes console.log(...);
Re: IT pro otrlé
Díky za rady.
Na jsfiddle vidím jak to funguje, tak jsem zkusil do vlastního codu dát do script tagu src="https://ajax.googleapis.com/ajax/libs/j ... ery.min.js" ale když to otevřu jako html tak stále nic...
Console mi hodil tento error, ale nevím jestli to s tím souvisí: HTTP-Based Public Key Pinning is deprecated. Chrome 69 and later will ignore HPKP response headers. (Host: c1.staticflickr.com)
Na jsfiddle vidím jak to funguje, tak jsem zkusil do vlastního codu dát do script tagu src="https://ajax.googleapis.com/ajax/libs/j ... ery.min.js" ale když to otevřu jako html tak stále nic...
Console mi hodil tento error, ale nevím jestli to s tím souvisí: HTTP-Based Public Key Pinning is deprecated. Chrome 69 and later will ignore HPKP response headers. (Host: c1.staticflickr.com)
It is often the case that those who strongly advocate for social causes are driven less by a feeling of compassion towards the poor and weak, but more by a feeling of hate towards the rich and powerful.
Re: IT pro otrlé
Nedával jsi to k tomu scriptu, co v něm máš napsaný ten svůj kód? Protože to by pak nefungovalo. To musí být další tag, tj. buď tam máš src, nebo nějaký kód, ale ne obojí dohromady. Mělo by to vypadat takhle:
https://developers.google.com/speed/libraries/#jquery
Jinak bych taky doporučil linkovat nejaktuálnější verzi, pokud není důvod použít starší.
https://developers.google.com/speed/libraries/#jquery
Jinak bych taky doporučil linkovat nejaktuálnější verzi, pokud není důvod použít starší.
OnGe tu není, je tu jenom Zuul
Re: IT pro otrlé
Script oblast mám napsanou takto, nic jiného jsem nezměnil:
Kód: Vybrat vše
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
$(document).ready(function() {
$(window).scroll(function () {
//if you hard code, then use console
//.log to determine when you want the
//nav bar to stick.
console.log($(window).scrollTop())
if ($(window).scrollTop() > 280) { /* if scroll down stick on top */
$('.navbar').addClass('sticky');
}
if ($(window).scrollTop() < 281) { /* at page opening don't stick, but flow with page */
$('.navbar').removeClass('sticky');
}
});
});
</script>
It is often the case that those who strongly advocate for social causes are driven less by a feeling of compassion towards the poor and weak, but more by a feeling of hate towards the rich and powerful.
Re: IT pro otrlé
No a takhle je to blbě. Když tam máš src, nemůžeš v tom mít kód, protože ten se ti natahuje z toho src. Takže by to mělo vypadat nějak takhle:
Kód: Vybrat vše
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" />
<script>
$(document).ready(function() {
$(window).scroll(function () {
//if you hard code, then use console
//.log to determine when you want the
//nav bar to stick.
console.log($(window).scrollTop())
if ($(window).scrollTop() > 280) { /* if scroll down stick on top */
$('.navbar').addClass('sticky');
}
if ($(window).scrollTop() < 281) { /* at page opening don't stick, but flow with page */
$('.navbar').removeClass('sticky');
}
});
});
</script>
OnGe tu není, je tu jenom Zuul
Re: IT pro otrlé
Rozumím.
No mám to teď přesně takto a stejně nic... udělal jsem i copy paste toho codu abych se ujistil že to mám správně. Jsem z toho jelen.
No mám to teď přesně takto a stejně nic... udělal jsem i copy paste toho codu abych se ujistil že to mám správně. Jsem z toho jelen.
It is often the case that those who strongly advocate for social causes are driven less by a feeling of compassion towards the poor and weak, but more by a feeling of hate towards the rich and powerful.
Re: IT pro otrlé
https://jsfiddle.net/Lgjtuck0/
Console říká: HTTP-Based Public Key Pinning is deprecated. Chrome 69 and later will ignore HPKP response headers. (Host: c1.staticflickr.com)
Console říká: HTTP-Based Public Key Pinning is deprecated. Chrome 69 and later will ignore HPKP response headers. (Host: c1.staticflickr.com)
It is often the case that those who strongly advocate for social causes are driven less by a feeling of compassion towards the poor and weak, but more by a feeling of hate towards the rich and powerful.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů