2012-08-01 82 views
0

我在創建的遊戲中有一個拖放事件。我不想將元素拖放到拖放區域,而是希望能夠單擊拖動區域,然後拖放區域併爲其移動進行動畫處理。是否可以這樣做,以便用戶不必實際拖動它?點擊拖放區域

如果是這樣,在那裏我會從這裏去...

$('.drag').draggable({ 

helper: 'clone', 
snap: '.drop', 
grid: [60, 60], 
revert: 'invalid', 
snapMode: 'corner' 
}); 


$('.drop').droppable({ 
drop: function(event, ui) { 
    word = $(this).data('word'); 

    guesses[word].push($(ui.draggable).attr('data-letter')); 
    console.log($(event)); 
    console.log($(ui.draggable).text()); 

    console.log('CHECKING : ' + $(this).text() + ' against ' +     $(ui.draggable).text().trim()); 


    if ($(this).text() == $(ui.draggable).text().trim()) { 

     $(this).addClass('wordglow3'); 
    } else { 
     $(this).addClass('wordglow'); 
    } 
    console.log('CHECKING : ' + $(this).text() + ' against ' + $(ui.draggable).text().trim()); 


    console.log(guesses); 

    if (guesses[word].length == 3) { 
     if (guesses[word].join('') == word) { 
      $('td[data-word=' + word + ']').addClass('wordglow2'); 

     } else { 
      $('td[data-word=' + word + ']').addClass("wordglow4"); 
      guesses[word].splice(0, guesses[word].length); 
     } 
    } 






}, 

回答

0

試試這個...

$('.drag').on('click', function(e) { 
e.preventDefault(); 

var target = $('.drop-box.spellword:not(.occupied):first'); 
var targetPos = target.position(); 
var currentPos = $(this).offset(); 
var b = $(this); 

if (target.length) { 
    target.addClass("occupied"); 
    $(".minibutton").prop("disabled", true); 
    b.clone().addClass(
    b.data("letter") == target.data("letter") ? "wordglow3" : "wordglow").appendTo("table").css({ 
     background: "transparent", 
     position: "absolute", 
     top: currentPos.top, 
     left: currentPos.left 
    }).animate({ 
     top: targetPos.top, 
     left: targetPos.left 
    }, "slow", function() { 
     $(this).css({ 
      top: 0, 
      left: 0 
     }).appendTo(target); 

     }); 


    } 

}); 
0

http://jqueryui.com/demos/droppable/#revert看到在錯誤的位置跌落時該如何反向動畫?當拖動對象的狀態爲true並且要拖動到的位置爲true時,使用該動作並觸發從一個位置移動到另一個位置。

使用標誌來檢查它們是否被點擊。希望你會弄清楚其餘的。

+0

這一個方式,我不認爲@Shouvik – sMilbz 2012-08-01 09:28:09

+0

肯定的,試試吧。如果您遇到問題,請發佈您的嘗試,我們會很樂意解決您的問題! :) 最好... – Shouvik 2012-08-01 11:05:06