- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- OLED TV topic
- Amlogic S905, S912 processzoros készülékek
- Vezetékes FEJhallgatók
- Milyen egeret válasszak?
- GeForce RTX 5060: Ezt kapjuk 150 ezerért
- Részesedést szerezhet az AMD-ben az OpenAI
- AMD Navi Radeon™ RX 9xxx sorozat
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
De az már külön függvény dolga, ez attól független. Plusz akkor arra is mindenképp figyelj oda, hogy nehogy egy scriptfájlt többször is be akarjon húzni, ezt előtte mindenképp csekkold, hogy nem lett-e már include-olva. Lehet akár csúf globális változóba is tárolni, vagy id-t adni a script tagnek, és annak meglétét ellenőrizni, és egyéb megoldásokon is lehet törni a fejed.
-
Sk8erPeter
nagyúr
Szívesen! A document.head nem minden böngészőben támogatott:
https://developer.mozilla.org/en-US/docs/DOM/document.head
azt hiszem, csak a HTML5 specifikációban rögzítik, hogy ez így valid.
Ha ez a document.head undefined, mert az adott böngészőben nem támogatott, akkor a VAGY-kapcsolatnál lévő értékadás jut érvényre:
document.head = document.getElementsByTagName('head')[0]
így már nem lesz undefined a document.head; a document.getElementsByTagName('head')[0] a legtöbb böngészőben működik, csak valamennyivel lassabb, lásd:
http://jsperf.com/document-head
Persze nem lenne muszáj egyébként ez az értékadás; lehetne úgy is, hogy
var headNode = ( document.head | document.getElementsByTagName('head')[0] );
a hatás elvileg ugyanaz lenne, a headNode a helyes értéket kapná (most nem beszélek arról az esetről, ha valamelyik degenerált kód rosszul bírálta felül a document.head-et), csak utóbbi esetben a document.head-nek nem lenne értékadás, ami egyébként nem is muszáj, nyugodtan kihagyható.
Tehát ha úgy jobban tetszik, az utóbbi értékadást is használhatod.Szerk.: amúgy úgy is átalakíthatod, hogy a függvénynek átadod, hogy melyik elemhez szeretnéd appendelni a script taget. Mindenesetre mivel ez is ismétlődő feladat lehet, mindenképp érdemes szerintem függvénybe rakni, és úgy meghívni (beszédesebb is).
-
Sk8erPeter
nagyúr
Most csak arra a részre reagálok, hogy a document.write() ilyesmi feladatokra ritka kivételektől eltekintve (pl. amikor csak meg akarod mutatni, hogy igen, ilyen is van) sztem elég csúnya megoldás alapból.
Akkor már valahogy így, jQuery használata nélkül:
/**
* Inject a JavaScript file into the header
*/
function injectJavaScriptFile( jsFilename, idOfScriptTag ){
// http://jsperf.com/document-head
document.head || (document.head = document.getElementsByTagName('head')[0]);
var
headNode = document.head,
newScriptNode = document.createElement('script');
newScriptNode.type = 'text/javascript';
if(idOfScriptTag){
newScriptNode.id = idOfScriptTag;
}
newScriptNode.src = jsFilename;
headNode.appendChild(newScriptNode);
}aztán így használhatod:
injectJavaScriptFile('myscriptfile.js');
-
martonx
veterán
mondjuk jquery nélkül?
Egyébként javaslom, ne a window szélességét figyeld, hanem a document.body-ét.
És a régebbi IE-knél rémlik, hogy még adocument.body is rosszul számolódott, mert nem vette figyelembe a scrollbar-t.
Pontosan mi a célod? A CSS lekezeli a többféle felbontást, mi az amihez külön javascript is kell? -
Sk8erPeter
nagyúr
Mivel semmi kódot nem látunk, így nehéz lesz segíteni. Megnéztem a honlapját, és ott egy 1 perces időtöltés alatt egy normális doksit sem találtam, szóval én nem nagyon tudok miből kiindulni.
===================
(#3261) martonx :
"Mivel aszinkron felépítésű, és a javascript kód gépi kóddá fordulhat, ezért igen hatékony szerver oldalt lehet benne készíteni. Már ha nem lenne a javascript olyan amilyen."
Mármint konkrétan mire gondolsz? -
Sk8erPeter
nagyúr
Szerintem a legtisztább megoldás a jQuery-s .data() használata, amivel data-attribútumok állíthatók be; tisztább, szárazabb, biztonságosabb érzés.
A kód nem lesz csúnya tőle.
Átalakítva a saját korábbi demómat, készítettem egy újabbat neked:http://jsfiddle.net/Sk8erPeter/HLT3J/2/
Külön-külön nyilvántartható így az aktuális beállítandó background-position és az aktuális kívánt irány is.
Aztán ezt ízlésednek megfelelően átalakíthatod. -
Soak
veterán
Itt a kód : http://pastebin.com/LAagfMKx
szerk: Persze itt még csak a class-t piszkálja, de nyilván ha sikerülne megcsinálni akkor beadnám nei az id-t.
szerk2 : nem is a változó inicializása miatt nem megy, hanem amikor át akarom addni a funkciónak.
-
Sk8erPeter
nagyúr
Ja, jogos, erre nem lett felkészítve a korábbi kód. Most érdemben nincs időm foglalkozni vele, de ja, a this a megfelelő kulcsszó, a .hover() eseménykezelőjén belül például:
$(this).css('background-position', .......);
Viszont azzal számolj, hogy így több elemnél nyilván kell tartani az összeshez tartozó épp aktuális scrollozást, vagy csak a jelenlegihez képest tologatni mindig, mindenesetre azért át kell variálni a kódot. -
Sk8erPeter
nagyúr
Szerintem a JS nélküli működésre itt nem érdemes építeni, legfeljebb CSS3-as újításokkal megoldani az animációt, amennyiben a böngésző támogatja, amennyiben nem, na akkor lépne életbe a JS-sel való animálgatás, pont ilyenekre nagyon jól használható például a Modernizr, ezt tudom ajánlani, mert ilyenekre nagyon fasza. Én például olyanra használtam (csak egy kiragadott példa), hogy alapból CSS3-mal animáltam egy menü fel-lecsúszkálódását, aztán egy jQuery-kódban pedig a megfelelő Modernizr által JS-sel beállított class meglétét ellenőriztem, így tudtam csekkolni, adott böngészőben megvan-e a CSS3-as property támogatása, vagy sem (pl. IE8), ha nem, csak akkor kellett a jQuery-vel animálgatást beizzítani. Szerintem ez manapság járható út.
A két ötleted közül az elsőt én abszolút jónak tartom, én asszem azt választanám. Esetleg egy data-attribútummal (http://api.jquery.com/data/) is be lehetne állítani a hoverre betöltendő képet.
-
Sk8erPeter
nagyúr
Szívesen!
"Konkretan video previewnak lenne, tehat fix ertekkel kene kockat ugrania , majd elorol."
Na várj, és azt miért pont background-image-dzsel akarod megoldani? Már ha jól értem. Mondjuk végül is nem egy elvetemült gondolat, mert akkor csak egyszer kell betöltődnie, így kevesebb a request. Viszont annyiból nem biztos, hogy jó, hogy így ha kiraksz mondjuk 100 video preview-t, akkor 100 nagyobb képet kell betöltenie, mint amennyit szükséges, mert sanszos, hogy a júzer nem fog hoverezni mind a 100-ra. Szóval lehet, hogy érdemesebb lenne inkább különálló, de azonos méretű képeket betöltögetni szépen animálva. De persze ismerni kéne a konkrét körülményeket, meg a feladatot, mert végül is a jó megoldás kiválasztása nem triviális.Szerk.:
(#3140) Soak :
na ja, így is lehet, pixelekkel, de nem biztos, hogy "biztonságos", mert ha a kép keskenyebb/szélesebb, akkor az eltologatások nem biztos, hogy pontosak lesznek, a százalékos megoldás talán ennyiből jobb lehet.
Igaz, gondolom nálad úgyis fixálva lenne a háttérkép mérete, mindegyiknél azonos képkocka lenne.
És amúgy mi volt az oka, hogy a széles background-image-re esett a választás? Annak egyszerűsége? -
Sk8erPeter
nagyúr
Hali!
Most gyors kikapcsolódásként készítettem neked egy példademót, aminek a kódját már könnyen át tudod írni:
http://jsfiddle.net/Sk8erPeter/HLT3J/
Szerk.: a lényege, hogy százalékos alapon növelgeti-csökkentgeti a background-positiont, ezáltal jobbra-balra scrollozódik a background-image.
Lehet szépíteni a kódon, akár plugint is lehetne belőle készíteni. -
Sk8erPeter
nagyúr
Ha megnézed az általad belinkelt oldalt, akkor az Overlays szekción belül van egy olyan, hogy "Question with buttons" - erre a felpattanó overlay-re kellene raknod a bejelentkező formot, AJAX-szal elküldeni az adatokat szerveroldalra (úgy, hogy adatküldés közben megjelenítesz egy töltődést jelző ikont), majd a választól függően eldönteni, hogy akkor bejelentkezett-e sikeresen, vagy sem. Aztán ennek megfelelően frissíteni a tartalmat. Így nem lenne szükség semmiféle átirányításra, és így lenne szép megoldás.
-
Sk8erPeter
nagyúr
Eleve nem értem a dolgot, kezdjük az elején.
Bejelentkezési kísérletnél átirányítod a feldolgozást a pages/sign_in_form.php fájlba, mert ezt adtad meg az action attribútumban.
Normális bejelentkeztetés így néz ki:1.) form ->
2.) submit gombot megnyomja a felhasználó ->
3.) átirányítás a feldolgozó fájlba (nálad ez a sign_in_form.php, ez OK) ->
4.) a feldolgozó fájlban a formban átadott adatok megvizsgálása, validálása ($_POST) ->
5.) ez alapján eldönteni, hogy bejelentkezett-e a felhasználó, vagy sem ->
6.) ha igen, megfelelő session-változókat beállítani, ha nem, akkor erre vonatkozó figyelmeztetést beállítani (akár ezt is lehet sessionnel persze) ->
7.) VISSZAIRÁNYÍTANI az eredeti oldalra, ahonnan a kérés érkezett, vagy sikeres bejelentkezés esetén ÁTIRÁNYÍTANI megadott oldalra (pl. ha egy oldal megtekintéséhez authentikáció szükséges, átirányítod innen a felhasználót a bejelentkező oldalra, beállítasz az URL-be egy destination=/innen/jött/a/kérés $_GET-paramétert, és sikeres bejelentkezés után erre az /innen/jött/a/kérés oldalra irányítod át; vagy ha a felhasználó eleve a bejelentkező oldalra érkezett közvetlenül, akkor sikeres bejelentkezés után átirányítod a kezdőlapra, vagy egy másik default oldalra).
Természetesen minden oldal elején ellenőrzöd, a felhasználó bejelentkezett-e már (pl. létezik-e adott session-változó; persze ahol abszolúte nem szükséges a bejelentkezett állapot, ott nem kötelező, de jellemző az, hogy már az elején eldöntöd, anonim vagy bejelentkezett felhasználóról van-e szó, minden oldalon).Nálad úgy látom, a visszairányítás/átirányítás lépés elmarad.
-
Sk8erPeter
nagyúr
Új hozzászólás Aktív témák
- Autós topik
- Mobil flották
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Samsung Galaxy A55 - új év, régi stratégia
- Okosóra és okoskiegészítő topik
- AliExpress tapasztalatok
- Linux kezdőknek
- A fociról könnyedén, egy baráti társaságban
- World of Warships
- További aktív témák...
- Raijintek Cratos 1000 W 80 Plus Gold ATX 3.0 tápegység eladó
- Gigabyte AORUS 15G 15.6" FHD IPS i7-10870H RTX 3060 16GB 512GB NVMe új akku gar
- Lenovo Legion 9 16IRX8 RTX4090 i9 13890HX 2TB SSD 32GB RAM
- DELL latitude 5420 Tartós Üzleti Laptop 14" -70% i5-1145G7 4Mag 16Gb 256GB SSD FHD IPS
- Latitude 5520 27% 15.6" FHD IPS érintő i7-1185G7 MX450 16GB 512GB magyar vbill ujjlolv IR kam gar
- Magic Trackpad legújabb fajta, lightning csatlakozóval
- GYÖNYÖRŰ iPhone 11 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3167, 100% Akkumulátor
- iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3086, 94% Akkumulátor
- LG 27GP850P-B - 27" NANO IPS - 2560x1440 - 180Hz 1ms - NVIDIA G-Sync - AMD FreeSync - HDR 400
- ÚJ AKKU!!! Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest