-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
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
-
gyga
senior tag
-
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
-
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?
-
Lacces
őstag
-
nobela
senior tag
-
Sk8erPeter
nagyúr
-
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. -
sztanozs
veterán
-
Muton
addikt
-
Muton
addikt
-
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
-
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
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Apple iPhone 15 128 GB Black 1 év Garancia Beszámítás Házhozszállítás
- BESZÁMÍTÁS! Sapphire Pulse RX 6800 16GB videokártya garanciával hibátlan működéssel
- iPhone 17 Pro Max Silver - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- Telefon felvásárlás!! Samsung Galaxy A22/Samsung Galaxy A23/Samsung Galaxy A25/Samsung Galaxy A05s
- GAMER PC! Ryzen 5800X / RX 7700 XT / 32GB DDR4 / 1TB SSD / 650w Gold!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


. Én így is úgy is olvastam, és magyarázták nekem.

A kód nem lesz csúnya tőle.
