Nick Craver beni yaklaşık 10 dakika kadar bir yanıt vermeme karşın, gerçek bir görüntü yerine görüntüyü konumlandırmak için background-image
kullanarak bu benim kodum.
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';
});
değişkenlerin büyük miktar mousemove
olay işleyicisi mümkün olduğunca verimli olmak zorunda çünkü vardır. Bu biraz daha kısıtlayıcıdır, çünkü boyutları bilmeniz gerekir, ancak kodun kolaylıkla hesaplanabildiği img
s ile çalışmak için kolayca değiştirilebilir. Bunun
Basit bir demo: yavaşça durağına gelmesini Kenara http://www.jsfiddle.net/yijiang/fq2te/1/
, tam olarak örnekteki gibi değil. Açıklamaktan vazgeçemiyorum ama bir şey kapalı. –
Teşekkürler Nick, bu düzeltildi :) – Maikel
@Glenn - bu kolaylık yok, kesinlikle daha basitleştirilmiş bir versiyonu, sadece mevcut kodu nasıl düzelteceğinizi göstererek :) :) –