Hallo Leute,
ich habe da schon fast einen fertigen Code, nur leider funktioniert das noch nicht so ganz.
Irgendwie wird das interval nicht abgebrochen.
Wenn ich es so hinbekomme soll es mir recht sein, aber eine wirklich schöne Lösung ist das aber nicht. Könnte ich nicht irgendwie mit jquery und eventuell Events arbeiten.
Fein wäre es wenn .html eine callback funktion hätte, dann könnte ich einfach alles machen sobald der html Code geladen ist?
Denke da sollte es mittlerweile schönere Möglichkeiten geben. (Wenn diese url geladen, zentriere es, und mache ein FadeIn => fertig)
Würde mich über Infos freuen, die Möglichkeiten die ich im Internet gefunden habe, passen irgendwie nicht dazu dass ich html Code lade, und nicht direkt ein Bild.
lg Darian
## EDIT ##
Hallo Leute,
habe es nun doch noch die passende jquery Methode gefunden.
Hat mich etwas verwirrt dass es load als Event, und load auch als Ajax Funktion gibt. Jetzt funktioniert es aber.
Falls es jemanden Hilft:
Für Infos und Ideen bin ich natürlich weiterhin dankbar.
thx und lg
Darian
<edit>
Dennoch eine kurze Frage. Beim Firefox funktioniert es natürlich wunderbar. Beim ie habe ich jedoch das Problem, dass ich jedes Bild nur einmal ansehen kann. Beim 2ten Mal erscheint es nicht mehr.
Ist irgendwas ie spezifisches, vermutlich weil das Bild schon irgendwie im Browser geladen ist, kann ich kein Image mit der selben src erstellen, darum wird es nicht geladen, und das .load() wird auch nicht ausgeführt?
Was könnte ich da machen?
</edit>
ich habe da schon fast einen fertigen Code, nur leider funktioniert das noch nicht so ganz.
Irgendwie wird das interval nicht abgebrochen.
Wenn ich es so hinbekomme soll es mir recht sein, aber eine wirklich schöne Lösung ist das aber nicht. Könnte ich nicht irgendwie mit jquery und eventuell Events arbeiten.
Fein wäre es wenn .html eine callback funktion hätte, dann könnte ich einfach alles machen sobald der html Code geladen ist?
Denke da sollte es mittlerweile schönere Möglichkeiten geben. (Wenn diese url geladen, zentriere es, und mache ein FadeIn => fertig)
Code:
function changePicture() {
//holt den richtigen Link
link = link.replace(/thumbs\//, "pics/");
//erstellt den richtigen HTML Code
html = "<img src='"+link+"'></img>";
//ladet das Bild in die div Box
$("#gallery_main").html(html);
//Wird alle 0,5 sec aufgerufen, und macht einiges wenn das Bild complete=true ist
var interval = window.setInterval("imageLoaded()", 1000);
}
function imageLoaded() {
//das Bild scheint immer in [0] zu sein, ich nehme an dass das neueste Bild immer in 0 ist (hoffe das passt so)
alert(document.images[0].complete);
if(document.images[0].complete == true) {
alert("in der schleife");
//es ist geladen, also müssen wir das interval abbrechen => wird aber nicht abgebrochen (die alerts erscheinen immer wieder)
window.clearInterval(interval);
//Bild ist jetzt geladen, wir wollen die Höhe
var Img = new Image();
Img.src = link;
var height = Img.height;
//Bild in die Div Box der Höhe 340 zentrieren
if(height < 340) {
current_margin = (340-height)/2;
$("#gallery_main img").css("margin-top", current_margin);
}
else {
$("#gallery_main img").css("margin-top", "0");
}
//Div Box mit dem Bild einblenden
$("#gallery_main").fadeIn("slow");
}
}
Würde mich über Infos freuen, die Möglichkeiten die ich im Internet gefunden habe, passen irgendwie nicht dazu dass ich html Code lade, und nicht direkt ein Bild.
lg Darian
## EDIT ##
Hallo Leute,
habe es nun doch noch die passende jquery Methode gefunden.
Hat mich etwas verwirrt dass es load als Event, und load auch als Ajax Funktion gibt. Jetzt funktioniert es aber.
Falls es jemanden Hilft:
Code:
function changePicture() {
//holt den richtigen Link
link = link.replace(/thumbs\//, "pics/");
var Img = new Image();
Img.src = link;
$(Img).load(function () {
var height = Img.height;
//bild in div box geben
html = "<img src='"+link+"'></img>";
$("#gallery_main").html(html)
//Bild in die Div Box der Höhe 340 zentrieren
if(height < 340) {
current_margin = (340-height)/2;
$("#gallery_main img").css("margin-top", current_margin);
}
else {
$("#gallery_main img").css("margin-top", "0");
}
//Div Box mit dem Bild einblenden
$("#gallery_main").fadeIn("slow");
});
}
Für Infos und Ideen bin ich natürlich weiterhin dankbar.
thx und lg
Darian
<edit>
Dennoch eine kurze Frage. Beim Firefox funktioniert es natürlich wunderbar. Beim ie habe ich jedoch das Problem, dass ich jedes Bild nur einmal ansehen kann. Beim 2ten Mal erscheint es nicht mehr.
Ist irgendwas ie spezifisches, vermutlich weil das Bild schon irgendwie im Browser geladen ist, kann ich kein Image mit der selben src erstellen, darum wird es nicht geladen, und das .load() wird auch nicht ausgeführt?
Was könnte ich da machen?
</edit>
Zuletzt bearbeitet: