2011-06-29 18 views
9

Kaydırmada fare konumunu al

$(document).mousemove(function(event) { 
    captureMousePosition(event); 
}).scroll(function(event) { 
    xMousePos = event.pageX + $(document).scrollLeft(); 
    yMousePos = event.pageY + $(document).scrollTop(); 
    window.status = "x = " + xMousePos + " y = " + yMousePos; 
}); 

function captureMousePosition(event){ 
    xMousePos = event.pageX; 
    yMousePos = event.pageY; 
    window.status = "x = " + xMousePos + " y = " + yMousePos; 
} 

denedim ancak fare ile ilgili olarak sayfanın üst kısmına göre pencerenin tam konumunu görmek istemedim. (çerçeve)

+0

Eğer scriptinizde FF çalışıyor – bravedick

+0

hangi versiyonda ??? ff5 üzerinde test ettim – Varun

+0

FF5 işe yaramadı. Yani belgeye göre veya pencereye göre pozisyona ihtiyacınız var mı? komut dosyanız belgeye göreli olarak poz verir. Yani pencere yüksekliği = 2000 ise, belge yüksekliği = 5000, sayfa komut dosyasının sonunda 2000 değil, 5000 verir. – bravedick

cevap

7

biz ....

var xMousePos = 0; 
var yMousePos = 0; 
var lastScrolledLeft = 0; 
var lastScrolledTop = 0; 

$(document).mousemove(function(event) { 
    captureMousePosition(event); 
}) 

    $(window).scroll(function(event) { 
     if(lastScrolledLeft != $(document).scrollLeft()){ 
      xMousePos -= lastScrolledLeft; 
      lastScrolledLeft = $(document).scrollLeft(); 
      xMousePos += lastScrolledLeft; 
     } 
     if(lastScrolledTop != $(document).scrollTop()){ 
      yMousePos -= lastScrolledTop; 
      lastScrolledTop = $(document).scrollTop(); 
      yMousePos += lastScrolledTop; 
     } 
     window.status = "x = " + xMousePos + " y = " + yMousePos; 
    }); 
function captureMousePosition(event){ 
    xMousePos = event.pageX; 
    yMousePos = event.pageY; 
    window.status = "x = " + xMousePos + " y = " + yMousePos; 
} 
işe yaradı ve çok tarayıcılarda çalışmaktadır

neyse teşekkür: Tomardaki fare mevcut konumu alamayan biz sadece son pozisyona göre öylesine olarak değiştirdim kaydırılan ne kadar alabiliriz all :)

+0

Neden daha fazla bilgi verebilir misiniz? "Kaydırmada farenin güncel konumunu alamıyoruz "'? Çok teşekkürler @Varun. –

+0

@AlanDong "scroll" olayı, "e.pageX" veya "e.pageY" ifadelerini diğer etkinlikler yerine almaya çalışırken "undefined" verdiğinden. –

+0

@Varun Mükemmel çalıştı. "Mousemove" etkinliğine dayalı bir div taşımaya çalışıyordum. Fakat 'başlangıçta 'kodunuzu uygulayana kadar fare kodlarına erişemedim. Çok teşekkürler! – protoEvangelion

-1

ben bu çalıştı olmadı değil denemek:

$(document).ready(function(){ 
    $(document).scroll(function(e){ 
     $('#status').html(e.pageX +', '+ e.pageY); 
    }); 
}); 
+0

'un kafamı ben de aynı şeyi yapıyorum. e.pageX + ',' + e.pageY 'çalışmıyor – Varun