wZine

Splashscreen (IE specific)
03 Oct 1999 by Laacz

   Kas ir SplashScreen, tiem, kas kodē, man jāstāsta nav. Bet pārējiem laikam nenāktu par ļaunu. Doma ir tāda. Kad, piemēram, mēs laižam Photoshopu, jamais mums parāda ķipa bildi. Izskatās apmēram sekojoši (Allaire HomeSite 4.0 un Adobe ImageReady 2.0):

   Kāda ir izskata būtība splashscreenam? Tam nav bordera (to biš - apmales:), kā arī tas nav liels.

   Normāli, IE neļauj atvērt logu bez bordera. Bet, ja tu attaisi windowu fullscreenaa (pa visu ekrānu; nospied taustiņu F11), tam nav nekāda bordera. To var izdarīt, izmantojot window.open() metodi ar parametru fullscreen=1.

splashWin = window.open(URI, name,
"fullscreen=1, toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0");

   Tagadiņās mums ir logs fullscreenā. Nu i, tu teiksi. Tas takš tizli - splascreens pa visu ekrānu. Nu takš. Pareizi. Tizli. A var izmantot vienu fīču - tu vari to samazināt izmērā un novietot kur gribi uz ekrāna. Attiecīgās metode ir: resizeTo() un moveTo(). Parametri:

splashWin.resizeTo(platums, augstums); splashWin.moveTo(x, y);

   Nu uo. Mums značit ir splashscreens. Bet. Normāli splashscreens ir arī AlwaysOnTop. Ar domu - visu laiku augšpus visiem citiem logiem. Tas jau ir viltīgāk. Te nu mēs izmantosim vienu sliktu paņēmienu - ik pēc intervāla splashWinā izsauksim focus() metodi.

   Un tātad - viss, kas vaidzīgs mums jau ir zināms. Značit, kods ir:

var splashWin, autoCloseTimeoutHandle, ontopIntervalHandle

function openSplashWin (uri, width, height, autoCloseTime) {
// pozicionējam logu
 var w = window.screen.width;
 var h = window.screen.height;
 var l = (w-width)/2;
 var t = (w-width)/2;

 splashWin = window.open(uri, '_splash', 'fullscreen=1, toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0');
// noslēpjam, kamēr tas inicializējas
 splashWin.blur();
// uzfokusējam šito logu (lai būtu neaizdomīgi:)
 window.focus;

 splashWin.resizeTo(width, height);
 splashWin.moveTo(l, t);

  // uzfokusojam to logu
 splashWin.focus();

// ik pa 50 milisec sakām, ka viņš ir focus()
 ontopIntervalHandle = splashWin.setInterval('window.opener.splashWin.focus();', 50);
// intervāls un handleris ir jāattīra pirms aizvēršanas
 splashWin.document.body.onbeforeunload = function() {
  window.cleareInterval(autoCloseTimeoutHandle);
  window.onbeforeunload = null;
 };

// inicializējam intervālu
 splashWin.document.body.onload = function() {
  splashWin.setInterval("window.opener.splashWin.focus();", 50);
 };
// attīrām taimoutu (na vsjakije paž.)
 window.clearTimeout(autoCloseTimeoutHandle); 
// nu un tas ir testeris, vai nav laiks taisīties cieti
 if (autoCloseTime != null && autoCloseTime > 0) {
   autoCloseTimeoutHandle = window.setTimeout("splashWin.close()", autoCloseTime);
 }
// pirms aizvēršanas aizveram nafig (tāpatās;)
 window.onbeforeunload = function() {
  splashWin.close();
 };
}

    (openSplashWin('splash_01.htm', 300, 100, 5000))

   Diezgan pasmags gabals, bet, lai iebrauktu, jāurbjās sourcei cauri pašam. Moš drīz apstāstīšu par window.onbeforeunload() handleri.



Banneru sistēma BBA
Banneru sistēma BBA