Tekemässäni javascript-pelissä on tähtäin-div, jossa osa taustasta on läpinäkyvää. Divin alla on ukkeleita, joita ammutaan klikkaamalla. Ukkeleiden mousedown-eventti ei kuitenkaan aktivoidu, koska tähtäindiv on niiden päällä. Miten saan korjattua? ps. käytän jqueryä
Muuta z-indexiä?
Tähtäin pitäisi saada silti näkymään ukkeleiden päällä.
Toimisko näin: Yhdistä ukkeleiden mouseover- ja mouseout-eventteihin funkkarit, jotka pitävät kirjaa siitä, onko hiiri ukkelin päällä vai ei. Sido tähtäimen mousedowniin funkkari, joka tekee ukkeleille, joiden päällä tähtäin on mitä sitten tekeekin.
Voisi myös tehdä ukkeleille kopiot, jotka ovat täsmälleen samanlaisia ja liikkuvat samaa tahtia ukkelien kanssa, mutta näkymättömiä ja joiden z-index on tähtäimen yläpuolella. Tarkistus voitaisiin suorittaa sitten näihin, eikä näkyviin ukkeleihin.
Kokeilen ensin tuota jo123:n juttua (olen käyttänyt sitä aikaisemmin jossain muualla, ihan toimiva oli joten toimisi varmaan tässäkin). Kiitos vastauksista.
Koska DOMin eventit kuplii ylöspäin, niin lienisi mahdollista toteuttaa monta peräkkäistä samankokoista kerrosta, jossa ukkelit liikkuisivatkin taustakuvana. Tällä tavoin vaikka tähtäin olisi päällimmäisin kerros, niin siihen tehty klikkaus kuplisi seuraavaan tasoon ja siitä eteenpäin, vaikkapa kunnes tulee osuma, jolloin kuplinta voidaan katkaista.
Isoimpana ongelmana lienisi varmistaa pelille riittävä määrä sisäkkäisiä kerroksia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.