Szerző Téma: JavaScript-rõl általánosságban  (Megtekintve 108316 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető Suttogó

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 1.775
Re: JavaScript-rõl általánosságban
« Válasz #258 Dátum: 2008. április 21., 17:42:49 »
Milyen paranccsal tudom elérni hogy az oldal felülre ugorjon? (amit éppen nézek)
Ajánlott programok: Ubuntu | LibreOffice | GIMP

Nem elérhető Török

  • Tag
  • *
  • Hozzászólások: 109
Re: JavaScript-rõl általánosságban
« Válasz #257 Dátum: 2008. április 19., 20:07:57 »
Hali.

Arra gondoltam, feldobom kicsit az oldalam. Méghozzá úgy, hogy hozzászólásnál és pm küldésnél ne egy másik oldalt (php fájlt) töltsön be, hanem elhomályosodjon a kép, és megjelenjen egy div (hasonlóan, mint myvip-en az igazolványkép). Ezen a div-en lenne a form amit kitölt és a gomb amivel elküldi. illetve egy mégse gomb ami "visszaállítja" az eredeti állapotot. Szóval megint a rendes oldal látszik.
Sajnos egyálalán nem értek a javascript-hez. Ha valaki el tudná vállalni akkor jelezze.

Előre is köszönöm!

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: JavaScript-rõl általánosságban
« Válasz #256 Dátum: 2008. április 18., 20:08:36 »
setTimeout -ot írd be keresőbe. Erről a fórum keresője is ad találatot. Ha nem világos akkor kérdezz, de egyszerű
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Suttogó

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 1.775
Re: JavaScript-rõl általánosságban
« Válasz #255 Dátum: 2008. április 18., 20:00:51 »
Hogy lehet fügvényt időzíteni? (Mondjuk 10 percmulva fusson le )
Ajánlott programok: Ubuntu | LibreOffice | GIMP

Nem elérhető ratoc

  • Globális moderátor
  • Törzstag
  • *****
  • Hozzászólások: 968
Re: JavaScript-rõl általánosságban
« Válasz #254 Dátum: 2008. április 12., 13:33:50 »
Ez csak az IE alapú böngészőkben javítja ki.

máshol nem is kell, csak ie-ben rossz

Nem elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Re: JavaScript-rõl általánosságban
« Válasz #253 Dátum: 2008. április 12., 11:32:01 »
Ez csak az IE alapú böngészőkben javítja ki. (Csak a <=6 verziókban szükséges.) Meg persze az előző is, mert mindkettő a DXImageTransform.Microsoft.AlphaImageLoader függvényre alapozódik, csak az első az IMG elemeket javítja, ez pedig minden elem hátterét, ha az CSS-ben van megadva és egy png fájl.

Nem elérhető ratoc

  • Globális moderátor
  • Törzstag
  • *****
  • Hozzászólások: 968
Re: JavaScript-rõl általánosságban
« Válasz #252 Dátum: 2008. április 12., 10:27:13 »
és ha ezt beteszem ugyanúgy fognak menni a png-k mint firefoxban? akkor eddig ez a legjobb megoldás amit ismerek :)

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Re: JavaScript-rõl általánosságban
« Válasz #251 Dátum: 2008. április 11., 23:33:18 »
Nem használtam a google-t a kérdésem előtt  :blush:
Na szóval csak annyit kellett beírnom, hogy "png" és az első oldalon megtaláltam a választ.

Kód: Javascript
  1. function alphaFixIE() {
  2.         var s, i, j;
  3.  
  4.         // CSS: background
  5.         for (i=0; i<document.styleSheets.length; i++) {
  6.                 var pos = document.styleSheets[i].href.lastIndexOf("/");
  7.                 var cssDir = (pos != -1) ? document.styleSheets[i].href.substring(0, pos + 1) : "";
  8.                 for (j=0; j<document.styleSheets[i].rules.length; j++) {
  9.                         var style = document.styleSheets[i].rules[j].style;
  10.                         if (style.backgroundImage.toLowerCase().indexOf(".png") != -1) {
  11.                                 var filename = style.backgroundImage.substring(4, style.backgroundImage.length - 1);
  12.                                 if (filename.indexOf("http://") != 0 && filename.indexOf("/") != 0)
  13.                                         filename = cssDir + filename;
  14.                                 style.backgroundImage = "none";
  15.                                 style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + filename + "', sizingMethod='crop');";
  16.                         }
  17.                 }
  18.         }
  19. }
  20.  
  21. if (navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Windows") != -1)
  22.         window.attachEvent("onload", alphaFixIE);

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Re: JavaScript-rõl általánosságban
« Válasz #250 Dátum: 2008. április 11., 20:31:02 »
Jó lett, köszönöm.

(+1)

Nincs mit, igazából ki se próbáltam mert mennem kellett :D.
De most nekem lenne kérdésem:
Még itt kaptam ezt a JS-t, ami azt csinálja, hogy az átlátszó PNG képeket tényleg átlátszóvá teszi a böngészőben. Minden jó, csak most ugynez kéne pl. egy táblázatcella hátterének. Ha valaki át tudja firkálni úgy, hogy háttérnek jó legyen, akkor köszönöm :)!
Itt az eredeti kód:
Kód: PHP
  1. print "
  2. <script language='javascript'>
  3. function alphaImages() {
  4.         var els = document.getElementsByTagName(\"IMG\");
  5.         var s, w, h;
  6.         for (var i=0; i<els.length; i++) {
  7.                 s = els[i].src;
  8.                 if (s.toLowerCase().indexOf(\".png\") != -1) {
  9.                         els[i].src = \"images/blank.gif\";
  10.                         els[i].style.filter += \"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='\" + s + \"', sizingMethod=image);\";
  11.                 }
  12.   }
  13. }
  14. if (navigator.userAgent.indexOf(\"MSIE\") != -1 && navigator.userAgent.indexOf(\"Windows\") != -1) {
  15.         window.attachEvent(\"onload\", alphaImages);
  16. }
  17. </script>";
  18.  

Nem elérhető Sipikeee

  • Tag
  • *
  • Hozzászólások: 267
    • Script - Center
Re: JavaScript-rõl általánosságban
« Válasz #249 Dátum: 2008. április 10., 18:05:58 »
Jó lett, köszönöm.

(+1)

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Re: JavaScript-rõl általánosságban
« Válasz #248 Dátum: 2008. április 10., 17:44:23 »
ezt:

today =  timeValue + " " + days[dateNow.getDay()] + " " +
               months[dateNow.getMonth()] + ", " +
                date + " " +
                (y2k(dateNow.getYear()));


cseréld le erre:


today = (y2k(dateNow.getYear())) + " " + months[dateNow.getMonth()] + ", " + date + " " + days[dateNow.getDay()] + " " + timeValue;


Nem bizti, hogy jó, de egy próbát megér :)

Nem elérhető Sipikeee

  • Tag
  • *
  • Hozzászólások: 267
    • Script - Center
Re: JavaScript-rõl általánosságban
« Válasz #247 Dátum: 2008. április 10., 17:16:00 »
Ezt áttudnátok úgy írni, hogy helyes sorrendbe jelenjen meg az idő? Szóval csak úgy magyarosan...

Kód: Javascript
  1. <hr />
  2. <br />
  3. <b>Demót bal fent láthatod ;)</b><br /><br />
  4. <b>Kód:</b><br />
  5. <form>
  6. <textarea name="yourForm1" rows=6 cols=60 wrap=virtual>
  7. <script language="JavaScript">
  8. <!--
  9.  
  10. function resetIt() {
  11.  
  12. var timerID = null;
  13. var timerRunning = false;
  14.  
  15. if(timerRunning)
  16.         clearTimeout(timerID);
  17.         timerRunning = false;
  18. var timeNow = new Date();
  19. var hours = timeNow.getHours();
  20. var minutes = timeNow.getMinutes();
  21. var seconds = timeNow.getSeconds();
  22. var timeValue = "" + ((hours >24) ? hours -24 :hours)
  23. timeValue = ((timeValue <10)? "0":"") + timeValue
  24. timeValue += ((minutes < 10) ? ":0" : ":") + minutes
  25. timeValue += ((seconds < 10) ? ":0" : ":") + seconds
  26. timerID = setTimeout("resetIt()",100);
  27. timerRunning = true;
  28. var dateNow = new Date();
  29. var days = new Array('vasárnap','Hétfő','Kedd','Szerda','Csütörtök','Péntek','Szombat');
  30. var months = new Array('Januűr','Február','Március','Április','Május','Június','Július','Augusztus','Szeptember','Október','November','December');
  31. var date = ((dateNow.getDate()<10) ? "0" : "")+ dateNow.getDate();
  32. function y2k(number){return (number < 1000) ? number + 1900 : number;}
  33. today =  timeValue + " " + days[dateNow.getDay()] + " " +
  34.                months[dateNow.getMonth()] + ", " +
  35.                 date + " " +
  36.                 (y2k(dateNow.getYear()));
  37.  
  38.    if(document.all || document.getElementById){ // Browser Check
  39.       document.title = today.toString();
  40.    }else{
  41.       self.status = today.toString(); // Default to status.
  42.    }
  43. }
  44. resetIt();
  45. //-->
  46. </script>

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Re: JavaScript-rõl általánosságban
« Válasz #246 Dátum: 2008. április 06., 15:38:31 »
Így sem jó. Megnéztem a navigator.appVersion-t, és benne van az MSIE lánc és megnéztem a típusát is eredetileg a widthnek és az is undefined. Miután beállítjuk a 200px-et azután string lesz. De gondolom ez a jó. Próbáltam már simán 200-ra is állítani a 200px helyett, de úgy sem jó.
Szerk: sőt, beállítottam a DIVnek helyben a szélességét, úgyis széhúzza. Tehát úgy volt hogy <div id="hehediv" width="20"></div> . Szóval szerintem nem lehet sehogyse megoldani :(
Szerk2: de mégis. A megoldásoddal tökéletes. Próbánál nem raktam szóközt a hosszú szövegben az pedig akármit csinálsz, széthúzza. Megnéztem egy pár szóközzel, így jó. Köszi! :respect:
« Utoljára szerkesztve: 2008. április 06., 15:44:55 írta KisGabo »

Nem elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Re: JavaScript-rõl általánosságban
« Válasz #245 Dátum: 2008. április 06., 13:13:30 »
Igen, IE-ben nem jó a max-width, de én is úgy tudtam, hogy az expression()-ös megoldás jó rá. De IE7-ben sem jó.

A JS megoldásnak két baja van:
  • A getElementById-t még az adott ID-jű elem létrehozása előtt használod, így nem fogja megtalálni.
  • A divem.width-nak még nincsen értéke, mert nem lett beállítva, így nem nagyobb 200-nál.

Én így csinálnám:
<html>
<head>
<style>
    div {max-width: 200px; width:expression(this.width > 200 ? "200px" : this.width); }
</style>
</head>

<body bgcolor="#FFFFFF">
<div id="hehediv">ha kipróbálod írj ide valami nagyon hosszút :D</div>
<script language="javascript">
if (navigator.appVersion.indexOf("MSIE")!=-1) {
divem = document.getElementById("hehediv");
if (typeof(divem.width) == "undefined") {
        divem.width="200px";
}
}
</script>
</body>
</html>

És igen az Avant az IE alapú :)

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Re: JavaScript-rõl általánosságban
« Válasz #244 Dátum: 2008. április 06., 12:51:28 »
Régebben láttam egy CSS kódot, ami minden böngészőben működik és max-width-et utánozza és megadja.
Azért JS témába írok, mert a CSS nem működött, és megpróbáltam JS-sel, de az sem működik :-\

<html>
<head>

<style>
    div {max-width: 200px; width:expression(this.width > 200 ? "200px" : this.width); }
</style>

<script language="javascript">
divem = document.getElementById("hehediv");
if ( divem.width > 200 ) {
   divem.width="200";
}
</script>

</head>

<body bgcolor="#FFFFFF">

<div id="hehediv">ha kipróbálod írj ide valami nagyon hosszút :D</div>

</body>
</html>

Avant Browserem van amire Warner azt mondta hogy IE alapú :)