2009-11-05 15 views
9

Sürükle ve bırak işlemini zor buluyorum (hareket ederken fare düğmesini basılı tutuyorsunuz) ve bir kullanıcının bir simgeyi tıklatıp çizim tablasında tekrar tıklattığı bir "seç ve bırak" seçeneği sunmak istiyorum karşılık gelen eleman (bir resim).Fare işaretçinizi jquery ile nasıl görüntüleyebilirsiniz?

Bunu jquery ile nasıl yapıyorsunuz?

Teşekkürler.

Düzenleme: Öğeleri seçmek için iki div, bir simge plakası ve resimlerin bırakıldığı bir çizim plakam var. Fare, çizim plakasına girdiğinde, daha büyük görüntünün% 50 opaklığını istiyorum, böylece fare işaretçisini takip eder, böylece kullanıcı nerede düşeceğini tıklayarak bilir ve eğer çizim tahtasında bir şeyle çakışırsa.

cevap

28

cevabı:

HTML

<div id="sketch"></div> 
    <img src="cat.jpg" class="follow" style="position: absolute;"/> 

JQuery

$("#sketch").mousemove(function(e){ 
     $('.follow').css({'top': e.clientY - 20, 'left': e.clientX - 20}); 
}); 

Jsbin demo here.

+0

Bunun için teşekkürler: Bu şimdi bana çok yardımcı oldu! – uotonyh

+1

İyi cevap @Majid. Bir nesneyi, birden çok kez çağırmak yerine .css() işlevine de aktarabilirsiniz. Örneğin: $ ('.') 'Css ({' üst ': e.clentY,' left ': e.clientX}); – AndyPerlitch

+0

@AndyPerlitch, teşekkürler! Bir nesneyi kullanmak ve ".css()' için tek bir çağrı yapmak için cevabı güncellerim. –

3

Öğeyi, yalnızca click olayı için erişilebilir olan bir değişkende saklayın.

Yani, her görüntü üzerinde bir onclick: $('img').bind('click', function(e) { ... }); Ardından, tıklattıklarında, targetEvent'i bir yere saklayın ve bir tıklama olayını çizim plakasına bağlayın.

İlginç bir yöntem, bir kapatma kullanmak ve bu belirli targetEvent öğesini bağlamak olacaktır; böylece, çizim plakasına bir tıklama yapılması durumunda, hangisini kullanacağınızı bileceksiniz, ancak bildiğiniz sürece, o zaman sadece img'i yeni konuma taşımak için bir animasyon kullanın.

Unutmuyorum ki, bir resim tıklandığında, yeni bir tane bağlamadan önce, çizim plakasında bulunan olay işleyicisinin kaldırıldığından emin olmanız gerekir. (James Black'in yardım kullanarak)

+0

Sanırım çerçevesiz javascript'te yapmanın yolu budur. JQuery'nin güçlerini kullanarak daha kolay bir yol olacağını umuyordum. Ayrıca, simgeyi tıklarsınız ancak görüntüyü bırakırsınız ve aynı değildirler. –

+0

jQuery bunu daha kolay hale getirir, çünkü bu, çapraz platform yapma işinin birçoğunu soyutlaştırır. Uygulanması kolay olurdu, 30 dakikadan az sürerse, sadece kendim yaparım. Çizim plakasını tıklarsanız, bir görüntüe tıkladıktan sonra, img'i DnD ile yapılmış gibi doğru yere klonlayabilir veya taşıyabilirsiniz. –

+0

Tüm fikir, bir çizim yaparken, çizim tablasının içinde iken fare işaretçinizi izleyin. Plak üzerine yerleştirilecek olan görüntüyü klonlamak bir problem değildir. –

İlgili konular