Autor | Zpráva | ||
---|---|---|---|
Andy Profil * |
#1 · Zasláno: 6. 9. 2010, 20:29:40
Ahoj,
pokouším se o změnu obrázku na pozadí buňky při najetí myši. Následující kód: <table> <tr><td background="podklad1.jpg" onMouseOver="background='podklad2.jpg'">text</td></tr> </table> způsobí pouze zmizení podkladu1. Jak, co nejjednodušeji, dosáhnout kýženého výsledku? |
||
blazej44800 Profil |
#2 · Zasláno: 6. 9. 2010, 20:34:35
nemá tam byt background.src alebo daco take???
|
||
Medvídek Profil |
#3 · Zasláno: 6. 9. 2010, 20:38:28
Andy:
Nebude lepší v CSS přes td:hover? (Nepujde v IE6) |
||
Andy Profil * |
#4 · Zasláno: 6. 9. 2010, 20:44:04
blazej44800:
background.src - sice na stavovém řádku to nehlásí chybu, ale podklad1 ani nezmizí Medvídek: A je to jednoduché? |
||
Medvídek Profil |
#5 · Zasláno: 6. 9. 2010, 21:12:23
|
||
Andy Profil * |
#6 · Zasláno: 8. 9. 2010, 14:06:04
Medvídek:
Tvůj příklad mi nefunguje. Čím to může být? (Mám IE8) |
||
Chamurappi Profil |
#7 · Zasláno: 8. 9. 2010, 14:09:01 · Upravil/a: Chamurappi
Reaguji na Andyho:
Medvídek patrně neví, že :hover mimo odkazy funguje jen ve standardním režimu novějších Explorerů.
„způsobí pouze zmizení podkladu1“ Přidej onmouseout , kde nastavíš background zase na podklad1.jpg .
|
||
Bubák Profil |
#8 · Zasláno: 8. 9. 2010, 14:26:56
Andy:
Pro jistotu se zeptám, nebude v buňce odkaz? Protože pak by to šlo udělat jednodušeji, deklarovat odkaz blokový a taky mu deklarovat výšku, deklarace šířky není třeba, bude přes celou šířku buňky. |
||
Andy Profil * |
#9 · Zasláno: 8. 9. 2010, 14:41:15
Chamurappi:
Onmouseout nepomohlo, je to pořád stejné: podklad1 zmizí a podklad2 se neobjeví. Bubák: Ne, buňka bude bez odkazu. |
||
Bubák Profil |
#10 · Zasláno: 8. 9. 2010, 14:52:02
Tak ser koukni na http://www.jakpsatweb.cz/css/behavior/prebarveni_0.html
Pokud měníš obrázek na pozadí tak "this.style.backgroundImage = 'url(podklad1.jpg)'", případně "this.style.background = lime 'url(podklad1.jpg)'". Zbytek už asi zvládneš sám. |
||
Andy Profil * |
#11 · Zasláno: 8. 9. 2010, 15:59:32
Bubák:
I s následujícím kódem je to pořád stejné: <table> <tr><td background="podklad1.jpg" onMouseOver="this.style.backgroundImage='url(podklad2.jpg)'" onMouseOut="this.style.backgroundImage='url(podklad1.jpg)'">text</td></tr> </table> |
||
Bubák Profil |
#12 · Zasláno: 8. 9. 2010, 18:28:44
Samotný podklad2.jpg ti funguje?
<table> <tr><td background="podklad2.jpg">text</td></tr> </table> |
||
Andy Profil * |
#13 · Zasláno: 8. 9. 2010, 18:35:50
Ano. Už dříve jsem zkusil dát podklad1 místo podkladu2 a výsledek je stejný.
|
||
Andy Profil * |
#14 · Zasláno: 8. 9. 2010, 19:11:16
Ještě jsem našel docela univerzální outerHTML a innerText. Následující kód by měl fungovat a také by vyřešil tento problém, ale nefunguje:
<table> <tr><td background="podklad1.jpg" onMouseOver="this.outerHTML='<td background="podklad2.jpg">text</td>'" >text</td></tr> </table> Naproti tomu innerText funguje (ale není k ničemu): <table <tr><td background="podklad1.jpg" onMouseOver="this.innerText='jiny text'" >text</td></tr> </table> |
||
Bubák Profil |
#15 · Zasláno: 8. 9. 2010, 19:41:18
Tak to je nějaké divné, že kód [#11] nefunguje. Tady pomůže jedině odkaz na živou ukázku.
|
||
Andy Profil * |
Na něco jsem přišel. Divné bylo, že http://www.jakpsatweb.cz/css/behavior/prebarveni_0.html funguje a když namísto barev dám obrázky, nefunguje to. Chyba tedy musí být v cestě, zkoušel jsem s url i bez, malá/velká písmena, vše bez úspěchu. Ale podle [#15] kód [#11] musí fungovat, zkopíroval jsem tedy (Kvůli přehlednosti jsem neuvedl plnou cestu, zacož se omlouvám, protože to je to, co nefunguje.) oba podklady z C:\Documents and Settings\User\Dokumenty\Obrázky\ k html souboru, abych kód [#11] vyzkoušel přesně písmenko od písmenka a FUNGUJE TO!
Tedy jen s onMouseOver="this.style.backgroundImage='url(podklad2.jpg)'" , ale s onMouseOver="this.style.backgroundImage='url(C:\Documents and Settings\User\Dokumenty\Obrázky\podklad2.jpg)'" stále ne. Jak zprovoznit i tu dlouhou cestu? |
||
Bubák Profil |
#17 · Zasláno: 9. 9. 2010, 17:51:36
Nechce se mi zkoušet, ale mohlo by fungovat něco takového:
file:///C:/Documents and Settings/Jmeno uzivatele/Plocha/obrazek.png Máš nějaký důvod použít absolutní cestu k obrázku na disku? Pokud bude stránka na webu, stejně nebude mít k souborům na disku přístup. |
||
Andy Profil * |
#18 · Zasláno: 9. 9. 2010, 19:40:14
Bubák:
„file:///C:/Documents and Settings/Jmeno uzivatele/Plocha/obrazek.png“ funguje, je vidět, že jsi odborník. „Máš nějaký důvod použít absolutní cestu k obrázku na disku?“ No, mně spíš šlo o to, že obrázek z jakéhokoliv jiného adresáře, než je html soubor, nešel načíst. Vůbec by mě nenapadlo dát lomítka obráceně. Ještě jsem to tak různě zkoušel a cesta funguje i bez "file:///" jen s těmi dopřednými lomítky. Moc díky, problém vyřešen. |
||
Witiko Profil |
#19 · Zasláno: 11. 9. 2010, 22:00:41 · Upravil/a: Witiko
To protože \ se v řetězcích nepoužívá jako lomítko, ale na escapování určitých znaků. Například když chceš mít v řetězci znak ", tak před něj dáš obrácené lomítko: "\"", aby ho prohlížeč nebral jako konec řetězce, ale jako daný znak. Proto by fungovalo i
C:\Documents and Settings\User\Dokumenty\Obrázky\podklad2.jpg C:\\Documents and Settings\\User\\Dokumenty\\Obrázky\\podklad2.jpg A když už jsme u toho, možná, že pokud je obrázek toho pozadí malý, nezaškodilo by použít css spritů a provádět změnu obrázku jen jeho posunem, přičemž oba obrázky by se nacházely v obrázku jednom, jen by se pokaždé zobrazoval jen výřez z daného obrázku. http://cs.spritegen.website-performance.org/section/what-are-css-sprites |
||
Bubák Profil |
#20 · Zasláno: 12. 9. 2010, 00:03:33
Obrácené lomítka "pochopí" jen IE a Webkit (Chrome, ...), "nepochopí" je Opera a Gecko (Firefox, ...)
|
||
Witiko Profil |
#21 · Zasláno: 12. 9. 2010, 01:20:28
Myslíš v cestě k souboru? To je možné, já jen říkám jak to udělat, aby to vůbec bral js jako řetězec. :)
|
||
Časová prodleva: 15 let
|
0