Nick Craver pokonać mnie do odpowiedzi przez około 10 minut, ale to jest mój kod do tego, używając background-image
aby ustawić obraz zamiast rzeczywistego obrazu.
var img = $('#outer'),
imgWidth = 1600,
imgHeight = 1200,
eleWidth = img.width(),
eleHeight = img.height(),
offsetX = img.offset().left,
offsetY = img.offset().top,
moveRatioX = imgWidth/eleWidth - 1,
moveRatioY = imgHeight/eleHeight - 1;
img.mousemove(function(e){
var x = imgWidth - ((e.pageX - offsetX) * moveRatioX),
y = imgHeight - ((e.pageY - offsetY) * moveRatioY);
this.style.backgroundPosition = x + 'px ' + y + 'px';
});
ogromny ilość zmiennych są tam, ponieważ obsługi zdarzeń mousemove
musi być jak najbardziej skuteczny. Jest nieco bardziej restrykcyjny, ponieważ musisz znać wymiary, ale myślę, że kod można łatwo zmienić, aby działał z img
s, dla którego rozmiar można łatwo obliczyć.
Prosty demo to: http://www.jsfiddle.net/yijiang/fq2te/1/
Niezależnie od powoli do oporu, to nie jest dokładnie tak, jak w przykładzie. Nie mogę tego opuścić, ale coś jest nie tak. –
dziękuję Nick, to naprawiło :) – Maikel
@Glenn - to nie ma złagodzenia, to zdecydowanie jest bardziej uproszczona wersja, właśnie pokazywałem jak naprawić aktualny kod :) –