Autor Zpráva
Keilew
Profil
Dalo by se pomocí CSS "expression" šoupat objektem podle výskytu či nevýskytu scrollbaru? Tuším ale že Firefox expression neumí. Jak tedy zařídit krytí popředí (nacentrované) a pozadí (když tam jsou třeba svislé čáry) v závislosti na velikosti okna? Určitě se tím někdo zabýval, jen to nemůžu najít...
peta
Profil *
Keilew
To je napsane tak, ze nechapu, na co se ptas.
Co znamena soupat objektem? Drag & Drop?

- FF expression ne, ze neumi, on ho nezna.
Proc by mel umet neco, co neni vubec zapotrebi ve FF?
To je proste vymysl microsoftu. To je ten, co dela windows a podobne smejdy za penize. Asi polaci :)))
Z jakeho duvodu by mel byt JS v CSS?
Proc nemuzes nalinkovat 1 CSS a 1 JS, proc to davat do CSS? Co tim ziskas?

- Ve FF lze ale pouzit XBL, v IE HTC.
- Videl jsem pouzit expression pro simulaci min-width v IE.

S D&D si ted shodou okolnosti hraji a celkem zajimavy script je tento:
//--- begin Drag Drop ---
var obj,tempX,tempY,coorX,coorY;

function onMouseDown(e) {
obj = this;
if (document.layers) {
tempX = e.pageX;
tempY = e.pageY;
} else if (document.all) {
d = document;
d = d.documentElement ? d.documentElement : d.body;
tempX = event.clientX - parseInt(obj.style.left) + d.scrollLeft;
tempY = event.clientY - parseInt(obj.style.top ) + d.scrollTop ;
} else if (obj.getElementsByTagName) {
tempX = e.pageX - parseInt(obj.style.left);
tempY = e.pageY - parseInt(obj.style.top );

}
return false;
}
function onMouseMove(e) {
if (!obj) {
return true;
}
if (document.layers) {
coorX = e.pageX - tempX;
coorY = e.pageY - tempY;
obj.pageX = coorX;
obj.pageY = coorY;
} else if (document.all) {
d = document;
d = d.documentElement ? d.documentElement : d.body;
coorX = event.clientX - tempX + d.scrollLeft;
coorY = event.clientY - tempY + d.scrollTop;
obj.style.left = coorX + "px";
obj.style.top = coorY + "px";
} else if (obj.getElementsByTagName) {
coorX = e.pageX - tempX;
coorY = e.pageY - tempY;
obj.style.left = coorX + "px";
obj.style.top = coorY + "px";
}
obj.title = coorX + ":" + coorY;
return false;
}
function onMouseUp(e) {
obj = null;
}

function doInit() {
var f,o,o1;
f = window.document;
o = objGet2(f,"mapa");
o1 = o.childNodes;

for (i=0;i<o1.length;i++)
{
if (document.layers) {
o1[i].captureEvents(Event.MOUSEDOWN);
}
o1[i].onmousedown = onMouseDown;
}
if (document.layers) {
o.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
}
o.onmousemove = onMouseMove;
o.onmouseup = onMouseUp;
}

//--- end Drag Drop ---

Zvlast se mi libi, jak je maly a vcera jsem tam zrovna daval vec, aby mi to chodilo ok v IE, FF, O. Jak se to ale chova v tech starsich, to netudsim.
Keilew
Profil
Ta stránka zdaleka není hotová, ale jako příklad naprosto stačí. Odkaz zde. Pozadí se seskládá ze svislých čar a mezer, celková šířka jednoho sub-celku je 5px. Pokud budeš měnit rozměr stránky (stačí, když přibyde scrollbar), logicky se proužky pozadí rozhodí oproti proužkům na krajích a nad headerem. Jinak to kvůli stínům stejně neudělám. Otázkou je, jak donutit polohu toho kontejnéru, aby sledovala šířku okna a patřičně ji kompenzovala (nějaký modulo 5 a nějak to přičíst nebo tak podobně...)
Jinak Drag and Drop, to je pořádná frajeřina;-)
peta
Profil *
"logicky se proužky pozadí rozhodí oproti proužkům na krajích "

Tak to nechapu. Preci kdyz dam prouzky zarovnat CSS: background-position 0 0; cili zhora 0 zleva 0, tak se ti to nema proc rozhodit, ne?
A nevim, proc to davas do JS, kdyz je to problem toho, ze neumis CSS.
DJ Miky
Profil
Zarovnej to pozadí na střed a vykašli se na JavaScript...

Prostě background-position: top center; a nebude se ti to hýbat... Pokud ti to nebude úplně vycházet, tak změň ty soubory, ať to navazuje... A bude to navazovat vždycky... Při jakékoliv velikosti okna a scrollbaru...
Keilew
Profil
DJ Miky
Ta nejjednodušší řešení jsou většinou ta nejúčinnější. Tohle je přímo geniální, díky!:-)) Nacentrovat pozadí na body mě vůbec nenapadlo, dobrej fígl;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0