Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 1. 2. 2011, 21:19:28 · Upravil/a: Darker
Mám "herní plán" a v něm jednotky. Když kliknu na jednotku, zobrazí se její dosah a dostřel. Vizte CSS dole.
No problém je v tom, že když mapu posouvám pomocí posuvníků (mapa má overflow, jinak by to bylo velké jak kráva) tak se ta plocha z dosahem nehne z místa. Nicméně když odevřu okno s chatem, tak to skočí kam má. Takže by stačilo překreslovat obraz pokažé, když to člověk posune (optimalizace na rychlost) a nebo už během posouvání (to smrdí lagama). Link:http://jmareda.tk/hra/ Bohužel, aby jste to viděli, musíte nějakou hru vytvořit. Nemáme tam moc vychytané textovací prostředí. Vítám i návrh jiného řešení zvýraznění dosahu, než moje absolutně nastavené spany. #tabMapa td span { width:0px; height:0px; background:transparent; z-index:0; display:none; } #tabMapa td.zobrDosah span { background:transparent url('../transparentbg.php?alpha=80&R=0&G=7&B=100'); z-index:0; position:absolute; float:left; width:23px; height:23px; display:block; } #tabMapa td.zobrDostrel span { background:transparent url('../transparentbg.php?alpha=80&R=100&G=7&B=0'); z-index:0; position:absolute; float:left; width:23px; height:23px; display:block; border:1px solid red; } |
||
joe Profil |
#2 · Zasláno: 1. 2. 2011, 22:42:22
Asi jsem se nedostal na místo, o kterém píšeš. Objevila se mi tam nějaká chyba z PHP.
Nicméně pokud chápu dobře, tak se snažíš posouvat i absolutně pozicované elementy na nějakém poli, pokud hýbeš s posuvníkem. Nejjednodušší bude, když to pole bude mít pevný rozměr a obalíš ho do divu, který bude mít rozměry menší a také overflow: scroll, tím pak budeš hýbat s polem a absolutně pozicované elementy zůstanou tam, kde skutečně mají být. |
||
Darker Profil |
#3 · Zasláno: 2. 2. 2011, 12:08:16
Měly by, ale není tomu tak.
|
||
Witiko Profil |
#4 · Zasláno: 2. 2. 2011, 13:34:47
Zkoušel sis namapovat onscroll event a pri scrollování pak změnit pozicování toho elementu na nějakou hodnotu a z5?
|
||
joe Profil |
#5 · Zasláno: 2. 2. 2011, 17:07:30 · Upravil/a: joe
Darker:
„Měly by, ale není tomu tak.“ Je: <div style="height: 250px; overflow-y: scroll; position: relative;"> <div style="width: 300px; height: 300px; background: yellow; position: relative;"> <div style="position: absolute; left: 5px; top: 5px; width: 30px; height: 30px; background: blue;"> </div> </div> </div> Witiko: Na jednu stranu šetříš JavaScript a bráníš se použitím třeba jQuery (viz ostatní témata), ale na takovouhle triviální věc bys použil překreslování všech elementů závislé na JavaScriptu?! |
||
Darker Profil |
#6 · Zasláno: 2. 2. 2011, 17:19:37 · Upravil/a: Darker
To by fungovalo
Ale není to konzistentní element. Jsou to spany v jednotlivých buňkách. 3lo mi právě o to, že když prohlížeč musí něco vykreslit nově (třeba ten chat) tak to hodí kam to patří. Screenshoty: Vyberu jednotku Posunu mapu Zmáčknu esc... Tohle funguje. Já se v podstatě ptal po nějakém konvenčním řešení... |
||
Witiko Profil |
#7 · Zasláno: 2. 2. 2011, 17:29:58 · Upravil/a: Witiko
joe:
„na takovouhle triviální věc bys použil překreslování všech elementů závislé na JavaScriptu?!“ Ne, já pouze odpovídám na původní otázku tématu, jak "vynutit překreslení". Navíc odpovídám z mobilu a proto nemám možnost posoudit stav daného dokumentu. Darker: OT: Celkem pěkná hra, líbí se mi to, jen ten ajax spam je mírně brutální. O Comet už tu byla řeč. :) |
||
joe Profil |
#8 · Zasláno: 2. 2. 2011, 17:44:18
Darker:
Popravdě, vůbec nechápu na co se ptáš a jak už jsem psal, ukazuje to pořád chybu: Warning: Cannot modify header information - headers already sent by (output started at /home/users/darker/jmareda.tk/web/hra/inc/lobby.php:107) in /home/users/darker/jmareda.tk/web/hra/inc/lobby.php on line 249 Navíc ani nevím, jak se na mapu, co ukazuješ na screenshotech dostanu. Zdá se mi to celé zmatené. |
||
Witiko Profil |
#9 · Zasláno: 2. 2. 2011, 18:19:16 · Upravil/a: Witiko
Darker:
Nebylo by mnohem snažší buď: 1) Mít dvě / víc tabulek pro jednotlivé vrstvy zobrazení (pozadí -> UI -> jednotky) 2) Měnit rovnou styl té podložní tabulky místo pozicování nových políček navrch tabulky? |
||
joe Profil |
#10 · Zasláno: 2. 2. 2011, 18:29:17
A asi bych pro něco takového nepoužíval tabulku.
|
||
Witiko Profil |
#11 · Zasláno: 2. 2. 2011, 18:32:53
joe:
Koneckonců může použít i canvas, pokud se na to cítí, to neřešme. ;) |
||
Darker Profil |
#12 · Zasláno: 2. 2. 2011, 18:40:30 · Upravil/a: Darker
Witiko:
„Nebylo by mnohem snažší...“ To právě nevím, moc jsem se na to necítil... „ajax spam je mírně brutální“ To jsem nějak nepochytil. Ale slovo "Comet" už hledám :) EDIT:Tohle jsem přesně potřeboval už dávno. Nedáš mi link na domovskou stránku? |
||
Witiko Profil |
#13 · Zasláno: 2. 2. 2011, 18:52:59
Darker:
Nemyslím, že je nějaká domovská stránka. Comet není název produktu, ale řešení. :) |
||
Darker Profil |
#14 · Zasláno: 2. 2. 2011, 18:59:25 · Upravil/a: Darker
Witiko:
Tak dokumentaci, jak nato. Zkoušel jsem hledat "hele kometa", protože v téhle souvislosti jsem to tu viděl (na DJPW) ale nic. A myslím, že to byl tvůj post. |
||
Witiko Profil |
#15 · Zasláno: 2. 2. 2011, 19:20:15
Darker:
Jedná se o standardní HTTP požadavek se specifickým mime type, víc informací najdeš třeba na stránce z wikipedie v kapitole XMLHttpRequest: http://en.wikipedia.org/wiki/Comet_(programming) |
||
Časová prodleva: 13 let
|
0