Ich erstelle eine Galerie mit mehreren Bildern, wo Sie auf ein kleines Thumbnail klicken können und eine größere Version dieses Bildes wird geöffnet.Ändern src und Höhe des neuen src
Einmal geöffnet, wenn Sie den Cursor bewegen, folgt Ihnen das Bild auf der Y-Achse. Ähnlich https://www.zara.com/es/es/chaqueta-denim-combinada-pC33052724001.html?v1=5161517&v2=269184
Mein Problem: Alles funktioniert gut, aber wenn Sie öffnen Sie das Bild zum ersten Mal und bewegen Sie den Cursor gibt es einen „Sprung“, den ich versuche zu korrigieren. Dies geschieht, weil die Höhe von ".image-zoom img" (neues großes Bild) noch nicht definiert ist.
https://jsfiddle.net/z1jwyjur/2/
var h = 0;
function zoomTracking(event){
h = $('.image-zoom img').height();
var vptHeight = $(window).height();
var y = -((h - vptHeight)/vptHeight) * event.clientY;
$('.image-zoom img').css('top', y + "px");
console.log(h);
}
$(function() {
$('#grid a').click(function(e) {
// Currently "image zoom img" src is empty. So we give him a value, the big version of the image we click.
var changeSrc = $(this).attr('href');
$('.image-zoom img').attr('src', changeSrc);
// We make appear "image zoom"
$('.image-zoom').fadeIn();
// Here, the point is to get the height of the new big version of the image, and declare that height as "h". Not working...
h = $('.image-zoom img').height();
zoomTracking(e);
return false;
});
$('.image-zoom').mousemove(function(e) {
zoomTracking(e);
});
$('.image-zoom').click(function() {
$('.image-zoom').fadeOut();
});
});
Also im Grunde, was ich denke, ich brauche, ist die Höhe des neuen großen Bild zu erhalten, sobald die src geändert wurde.
Hinweise: Auf dem jsfiddle den „Sprung“ Ich versuche nur zu korrigieren, das erste Mal passiert, Sie klicken. Weil das zweite Mal schon die Höhe kennt./Die Galerie wird verschiedene Bilder mit verschiedenen Seitenverhältnissen haben.
Irgendeine Idee, wie man das repariert? Danke im Voraus.
Danke @andreas aber der "Sprung" ist immer noch da. Wenn Sie zum Beispiel auf den unteren Teil des kleinen Bildes klicken, erscheint das große Bild, aber wenn Sie den Cursor ein wenig bewegen, springt das Bild. –
Aber das ist ein Problem mit Ihrer Formel für 'y' – Andreas
Ja, ich bin an einem Punkt, wo ich die Dinge ausging zu versuchen ... Glaubst du, mit dieser Formel werde ich es nicht funktionieren? Es fühlt sich so nahe an. –