• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

js: image replacement mit aktuellem .offsetHeight

Migu

Kaiser Wilhelm
Registriert
14.02.04
Beiträge
175
Hallo Zusammen

Auf einer Gallerieseite http://server14.cyon.ch/~michaels/cms/website.php?id=portfolio/spontaneous.htm möchte ich die Bilder beim Anklicken des jeweiligen Thumbnails ändern und zwecks Berechnung der optimalen Bildhöhe und -breite zum jeweiligen Bild die Höhe und Breite abfragen.

Die Abfrage klappt beim ersten Bild mittels onload wunderbar, jedoch scheint die Funktion nach Änderung der Quelle des Bildes (src) nicht mehr auf das ausgewählte Bild zur Berechnung der korrekten Höhe (1. Bild: 669px, 2. Bild: 395px, 3. Bild: ca 2000px) zu referenzieren.

Herzlichen Dank für eure geschätzte Hilfe, Michael

HTML:
Code:
<a onclick="return showPic(this)" href="../html/img/pool/PhotoSpontaneous1.jpg"><img onclick="setForm(1)" class="thumbnail" src="../html/img/pool/ThumbnailSpontaneous1.jpg" alt="" title="" /></a>
<a onclick="return showPic(this)" href="../html/img/pool/PhotoSpontaneous2.jpg"><img onclick="setForm(2)" class="thumbnail" src="../html/img/pool/ThumbnailSpontaneous2.jpg" alt="" title="" /></a>
<a onclick="return showPic(this)" href="../html/img/pool/PhotoSpontaneous3.jpg"><img onclick="setForm(3)" class="thumbnail" src="../html/img/pool/ThumbnailSpontaneous3.jpg" alt="" title="" /></a>

<img id="photo" src="../html/img/pool/PhotoSpontaneous1.jpg" alt="" title="" />
<p id="desc"> </p>

Javascript zum Wechseln der Galleriebilder:
Code:
// source: http://www.alistapart.com/articles/imagegallery/

function showPic (whichpic) {
if (document.getElementById) {

 document.getElementById('photo').src = whichpic.href;

optimisePhotoSize();

if (whichpic.title) {
  document.getElementById('desc').childNodes[0].nodeValue = whichpic.title; 
 } else {
  document.getElementById('desc').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue; 
 }  return false; 
} else {
 return true;
 }
}


Javascript zum Auslesen der Höhe und Breite:
Code:
function optimisePhotoSize() {

//get information
this.navigationHeight = document.getElementById('navigationOuterWrapper').offsetHeight;
this.viewportHeight = parseInt(DHTMLAPI.getInsideWindowHeight());
this.viewportWidth = parseInt(DHTMLAPI.getInsideWindowWidth());

			
this.contentHeight = this.viewportHeight - this.navigationHeight - 40;
this.contentWidth = this.viewportWidth - 100;

this.photoHeight = document.getElementById('photo').offsetHeight;
this.photoWidth = document.getElementById('photo').offsetWidth;
this.photoRatio = this.photoWidth / this.photoHeight;

alert("berechnete Höhe: "+this.photoHeight+"px");
					
this.navigationPrimaryWidth = document.getElementById('navigationPrimary').offsetWidth;

//calculate ideal height
while ( ((this.photoHeight > 50) && (this.photoHeight > this.contentHeight)) || ((this.photoHeight > 50) && ((this.photoHeight * this.photoRatio) > this.contentWidth))) {
				this.photoHeight--;
			}


//set height of photo
document.getElementById("photo").style.height = this.photoHeight+'px';

//etc
}
 
Zuletzt bearbeitet:

intime

Wohlschmecker aus Vierlanden
Registriert
05.01.04
Beiträge
236
hallo,

probiere doch mal thickbox oder lightbox
vielleicht hilft es ja weiter.

grüße

intime

ps: hab gerade auf deine seite geschaut: also firefox bringt eine meldung für alle bilder mit unterschiedlichen höhenberechnungen... (Bild)
 

Anhänge

  • Bild 3.png
    Bild 3.png
    8 KB · Aufrufe: 109
Zuletzt bearbeitet:

BoogieJones

Transparent von Croncels
Registriert
10.11.07
Beiträge
305
ganz große Klasse ist auch die JS-Bibliothek Mootools. Da geht sowas im Handumdrehen.