Dynamische Thumbgröße und -platzierung

 


kathi
Veteran

12.01.11
14:22 Uhr
Hallo huhu

Gibt es (Nicht-Flash-)Websites, auf denen auf einer dynamisch großen Fläche eine Anzahl X an Bildern/Thumbs mit einem fixen Abstand zueinander platziert sind, sodass die Fläche zur Darstellung optimal genutzt wird? Die Thumbs würden sich beim Verkleinern und Vergrößern der Fläche also neu anordnen und/oder ihre Darstellungsgröße verändern (so, dass alle darauf befindlichen Thumbs gleichgross sind).


laber


Geht das überhaupt? Hat jemand Beispiele?

Danke schon mal. verlegen
Link zu diesem Beitrag in die Zwischenablage kopieren
honsey
Gast

12.01.11
14:31 Uhr
Editiert: 12.01.11, 14:38 Uhr
also generell kannst du das mit einfachem html/css machen. div container, der alle imgs enthält. die images bekommen dann css „float: left;“ verpasst und rutschen dann automatisch in die nächste reiche, wenn man den container verkleinert/vergrößert.

  1. <div>
  2. <img class="thumb"/>
  3. <img class="thumb"/>
  4. <img class="thumb"/>
  5. <img class="thumb"/>
  6. </div>
Quelltext in Zwischenablage kopieren

css:
  1. .thumb { float: left; } /* punkt vor thumb bedeuted: class */
Quelltext in Zwischenablage kopieren

mit zusätzlichem javascript (jquery) kann sicherlich das noch so machen, dass die containergröße gecheckt wird, bzw. wieviel lücke nach dem letzten bild vorhanden ist, dass dann durch die anzahl der bilder in der reihe teilt und zu den bildern jeweils addiert… brain

  1. round(div-width / thumb-width) = anzahl der möglichen thumbs (abstände aussen vor)
  2. div-width – (num_thumbs × thumb-width) = freier verfügbarer platz
  3. thumb-width + (freier-platz / num_thumbs) = neue, optimale thumbgrösse
Quelltext in Zwischenablage kopieren

also es geht irgendwie )
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
14:39 Uhr
aber es ist schon recht brain oder? also, vor allem, wenn die thumbs verschiedene breiten (aber immerhin die gleiche höhe) haben?

danke jedenfalls schon mal für die antwort. -D

hat jemand noch beispiele? trippel
Link zu diesem Beitrag in die Zwischenablage kopieren
marx
Gast

12.01.11
14:42 Uhr
Editiert: 12.01.11, 14:50 Uhr
Eigentlich so wie hier oder? http://suprb.com/apps/gridalicious/
Link zu diesem Beitrag in die Zwischenablage kopieren
honsey
Gast

12.01.11
14:44 Uhr
wenn sie verschiedene größen haben, wird es sehr viel aufwändiger
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
14:45 Uhr
marx schrieb am 12.01.11, 14:42 Uhr:

Eigentlich so wie hier oder? http://suprb.com/apps/gridalicious/

ja, genau. wobei man immerhin von der gleichen höhe der thumbs ausgehen kann, wie gesagt. trotzdem danke. danke
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
14:49 Uhr
Edit: Ah, nein, Moment, marx, in deinem Beispiel bleiben die Textboxen ja gleichgross und ordnen sich „nur“ neu an. Je nach Menge und Proportion sollen die Thumbs auch noch größer oder kleiner werden, je nachdem, wieviel Platz da ist. pee
Link zu diesem Beitrag in die Zwischenablage kopieren
marx
Gast

12.01.11
14:50 Uhr
Achso. Stimmt.
Link zu diesem Beitrag in die Zwischenablage kopieren
bogus
Veteran

12.01.11
15:06 Uhr
vielleicht kann tanzaku was für dich tun.
Link zu diesem Beitrag in die Zwischenablage kopieren
dirk d.
Veteran

12.01.11
15:08 Uhr
ich bin mir grad echt nicht sicher wie du das meinst, kathi. kannste das mal skizzieren? oder ein Flashbeispiel zeigen? brain

- die Fläche ist dynamisch breit
- die buttons sind dynamisch breit

- gibt es ne max und min-Breite, sowohl für buttons und fläche?
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
15:46 Uhr
bogus schrieb am 12.01.11, 15:06 Uhr:

vielleicht kann tanzaku was für dich tun.

danke! - das ist aber doch eigentlich so wie in marxens beispiel, oder hab ich was übersehen?

@ dirk: sorry, es ist ein bisschen brain... skizze folgt. :-9
Link zu diesem Beitrag in die Zwischenablage kopieren
dirk d.
Veteran

12.01.11
16:05 Uhr
kathi schrieb am 12.01.11, 15:46 Uhr:

bogus schrieb am 12.01.11, 15:06 Uhr:

vielleicht kann tanzaku was für dich tun.

danke! - das ist aber doch eigentlich so wie in marxens beispiel, oder hab ich was übersehen?

@ dirk: sorry, es ist ein bisschen brain... skizze folgt. :-9

wenn beides dynamisch ist, braucht es irgendeine definition, ab wann (max-width oä) die box umbrechen, bzw in die nächste spalte springen soll. ansonsten, also bei 4 boxen fix pro zeile, kannst du es ja mit 25% breite lösen.
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
16:20 Uhr
Editiert: 12.01.11, 16:35 Uhr
hier wär mal eine grobe skizze:



Die Breite der dynamischen Fläche ist fix, ebenso die Abstände der Thumbs zueinander und zum Rand der Fläche oben und links.

Die Höhe der Thumbs soll innerhalb einer Ansicht gleich bleiben; die Breite der Thumbs sind, wie man sieht, unterschiedlich. Verkleinert sich die dynamische Fläche, sollen die Thumbs neu umbrechen und, wenn die Fläche zu klein wird, kleiner skaliert werden.


brain


edit: ach so: die Anzahl der Thumbs ist natürlich auch variabel. gumbo
Link zu diesem Beitrag in die Zwischenablage kopieren
dirk d.
Veteran

12.01.11
17:54 Uhr
gibt es eine minimum/maximum höhe?
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
18:06 Uhr
jo, die könnte man festlegen. ja

also ich will jetzt eh keine konkrete code-lösung, nicht, dass sich hier jemand dafür in arbeit stürzt. ;-) ich wollte nur wissen, ob das irgendwie geht und wenn ja, ob es wohlmöglich so richtig kompliziert ist - denn so kommts mir vor. pee
Link zu diesem Beitrag in die Zwischenablage kopieren
honsey
Gast

12.01.11
18:14 Uhr
also es ist denke ich mal funktionierend in 2 stunden zu bauen. damits dann richtig rund läuft vielleicht nochmal 2.

brauchst halt jemanden, der jquery (o. ähnliches) kann.

hörthört
Link zu diesem Beitrag in die Zwischenablage kopieren
phloo
Veteran

12.01.11
18:20 Uhr
Theoretisch brauchst du nur PHP und CSS

Abfragen wieviel Thumbs ausgegeben werden.
Thumbhöhe+Padding / Gesamthöhe des Containers
Dementsprechende CSS Klassen ausgeben.

Floaten tun sie automatisch nebeneinander..
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
18:36 Uhr
Vielen Dank für eure Einschätzung. danke
Link zu diesem Beitrag in die Zwischenablage kopieren
dirk d.
Veteran

12.01.11
18:38 Uhr
phloo schrieb am 12.01.11, 18:20 Uhr:

Theoretisch brauchst du nur PHP und CSS

Abfragen wieviel Thumbs ausgegeben werden.
Thumbhöhe+Padding / Gesamthöhe des Containers
Dementsprechende CSS Klassen ausgeben.

Floaten tun sie automatisch nebeneinander..

du hast die thumbhöhe nicht. so einfach ist es nicht. um kathis frage zu beantworten: ja es ist recht kompliziert. honks
Link zu diesem Beitrag in die Zwischenablage kopieren
phloo
Veteran

12.01.11
18:52 Uhr
Die muss man aber festlegen oder irgendwo herholen, sonst macht die Aufgabe ja kein Sinn.
Entweder man legt die Höhe fest oder wieviele Reihen es geben darf.. dann eben berechnen.
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

12.01.11
19:19 Uhr
uh, ja, krass, danke jan. huhu
Link zu diesem Beitrag in die Zwischenablage kopieren
Martin R.
Veteran

12.01.11
19:37 Uhr
Eine reine Css-Lösung, welche den Viewport voll ausnutzt, vertical keine Bilder abschneidet, unterschiedliche Thumbgrößen erlaubt und die Reihen/Spaltenanzahl dynamisch anpasst:

http://martinrack.de/gallery.html

Also mal Browserfenster beliebig resizen und scrollen.
Link zu diesem Beitrag in die Zwischenablage kopieren
dirk d.
Veteran

12.01.11
22:04 Uhr
kathi schrieb am 12.01.11, 19:19 Uhr:

uh, ja, krass, danke jan. huhu

achso, ich dachte die höhe sei auf den viewport begrenzt und man duerfte nicht scrollen. pee
Link zu diesem Beitrag in die Zwischenablage kopieren
kathi
Veteran

13.01.11
09:48 Uhr
ja, das ist in meinem fall auch so. ja
trotzdem interessant. -)
Link zu diesem Beitrag in die Zwischenablage kopieren
Rusty
Veteran

13.01.11
11:34 Uhr
Ich hab eine Idee. Die Profis mögen sagen, ob das Sinn ergibt.

Wenn man für die Größenänderung nur einen leeren Layout-DIV verwendet und drüber einen mit den gefloateten Thumbs positioniert, dann bräuchte man doch nur eine Schleife schreiben, die so lange die Höhe der einzelnen Thumbs reduziert bis der umgebende Thumb-DIV den gewünschten Höhenbereich erreicht hat. Pixelgenau wird das nicht, dafür recht simpel.
Link zu diesem Beitrag in die Zwischenablage kopieren
Spek
Veteran

13.01.11
12:43 Uhr
JanB schrieb am 12.01.11, 19:11 Uhr:

http://www.sohtanaka.com/web-design/smar...ss-jquery/
Demo

starr

geilo...
Link zu diesem Beitrag in die Zwischenablage kopieren
Mighty Mike
Veteran

13.01.11
13:54 Uhr
Geht das auch in älteren Browsern?
Link zu diesem Beitrag in die Zwischenablage kopieren
kakenbok
Veteran

13.10.11
14:03 Uhr
Ich habe das Problem auch schon gelöst, jedoch mit ActionScript für Flash.

Der Algorithmus ist relativ kompliziert. Er berechnet die maximal mögliche Anzahl der Spalten - gegeben eine Liste von beliebig großen Objekten.

Den SIZE-MAX-width-Slider bewegen, der begrenzt die Viewport-Breite: http://sibirjak.com/osflash/projects/as3...6-dyntable
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#