2013-02-19 11 views
11

JavaScript'te bir HTML öğesinin tam CSS imleç tanımını almayı denediğimde, herhangi bir nedenden dolayı hotspot (hedef piksel) koordinatlarını atar ve imlecimin sıfırlanmasına neden olur. imleç görüntüsünün sol üst pikseline hotspot (yani iyi bir şey değil).Bir öğenin özel CSS imleç hotspot koordinatlarını JavaScript'ten belirleme

Problem demonstrated in this JSFiddle.

Güncelleme: Bazı tarayıcılarda, özellikle (testlerimde) Mac Chrome ve Safari'de bu şekilde görünmektedir.

Güncelleme 2: bu Görünüşe aslında WebKit (8536.26.17, 537+) en son gece yapı içinde sabittir, bu yüzden bir hata olduğunu ve zaten düzeltildi yanında gereklidir yanıt yoktur sanırım.

var elem = document.createElement("div"); 
elem.style.cursor = "url('path/to/cursor') 9 9, auto"; 
console.log(elem.style.cursor); 

Çıkışlar: Örneğin

url(path/to/cursor), auto 

onlar set kıldıktan sonra stilinden Koordinatları almak için herhangi bir yolu var mı ?? window.getComputedStyle()'u denedim, ancak aynı sonuca sahip.

Bu benim için oldukça büyük bir gözetime benziyor. Bu bilgi az önce kayboldu ve artık geri alınamaz mı?

+0

Buradaki simgenin ortası: Chrome 27, Firefox 18. – Mooseman

+0

İlginç. Mac’te en son Chrome 24’dayım. – devios1

+0

@chaiguy Başka tarayıcı yüklü var mı? Varsa, test edin. –

cevap

1

Bildiğim kadarıyla CSS 2.1 Şartname bakmaktan söyleyebilirim, X ve Y koordinatları dahil değildir:

http://www.w3.org/TR/CSS21/ui.html#cursor-props

Ayrıca Mozilla Developer Network listeleri X, Y deneme amaçlı "koordine eder. " Belirtimdeki bir şey yoksa, tarayıcıların farklı ve bazen de çakışan uygulamalara sahip olmasını bekleyebilirsiniz.

+0

Bu durum böyle olabilir, ama gerçekten, bu koordinatlar olmadan, özel bir imlecin hepsi anlamsızdır. – devios1

+0

"test.style.cursor" tarafından döndürülen değere bakarsanız, koordinatları hariç tutar ve bu nedenle sıfırladığınızda, bu hataya neden olur. Hariç tutmamanın veya anlamsız olmanın anlamsız olup olmadığı, bir özellik geliştirmesi için bir geçici çözüm geliştirmelisiniz. Daha sonra, sorun giderildiğinde, kodunuzu güncelleyebilirsiniz. – razzed

İlgili konular