Bildpositionierung per Zufall
André
- javascript
Hallo,
ich würde gern folgendes realisieren: bei jedem Seitenaufruf wird ein Bild und ein Textelement (Link) per Zufall völlig frei innerhalb des Browserfensters/Frames positioniert. Die Elemente sollen sich jedoch nicht gegenseitig überlappen und auch nicht vom Seitenrand/Fenster/Frame angeschnitten sein.
Kann jemand helfen? Kennt jemand Sites, die diese Technik benutzen? Wie üblich natürlich mit möglichst wenig Programmieraufwand (nach Möglichkeit kein Flash) und geringe Anforderungen an die Browser. (Meine Kenntnisse in HTML sind o.k., in JS etc. überschaubar).
Freue mich auf Antworten. Vielen Dank! ;-)
André
Hallo André,
ich würde gern folgendes realisieren: bei jedem Seitenaufruf wird ein Bild und ein Textelement (Link) per Zufall völlig frei innerhalb des Browserfensters/Frames positioniert. Die Elemente sollen sich jedoch nicht gegenseitig überlappen und auch nicht vom Seitenrand/Fenster/Frame angeschnitten sein.
Kann jemand helfen? Kennt jemand Sites, die diese Technik benutzen? Wie üblich natürlich mit möglichst wenig Programmieraufwand (...) (Meine Kenntnisse in HTML sind o.k., in JS etc. überschaubar).
Was du vorhast, ist sicherlich zu realisieren, aber nur mit großem Aufwand in Javascript (in Flash wäre er geanuso groß)
Du könntest zunächst mit window.innerWidth und ~Height resp. document.body.clientWidth und ~Height die Fenstergröße auslesen, dann die in einem Array verzeichneten Elemente per Zufallsgenerator auswählen und diese dann in einer while-Schleife mit visibility:hidden ebenfalls per Zufallsgenerator so lange neu positionieren, bis sie sich weder gegenseitig noch jeweils den Fensterrand mehr überlappen, was du mit deren Eigenschaft offsetWidth und ~Height errechnen kannst, die zur jeweiligen Position hinzuaddiert unter den Positionswerten des rechten und unteren Fensterrandes und gleichzeitig in entweder Top- oder Left-Eigenschft unterhalb des jeweils anderen Elements bleiben müssten oder diese mindestens um entweder dessen offsetWidth oder ~Height-Eigenschaft überragen müssten. Wenn das schließlich der Fall ist, setzt du deine Elemente auf visible. Alles klar?
Mit Director-Lingo wäre das einfacher, da gibt es die Methode intersects().
Gruß Gernot