私のドラッグアンドドロップゲームでは、現在、ユーザーにスペルする単語を表示するスタイルがありますが、最初の単語の最初のセル以外の場所に文字をドロップしないようにするための制約はありません。
ユーザーが単語の最初の文字にのみ文字をドロップできるようにするにはどうすればよいですか?
または、ドロップゾーンにドロップされた文字を左にスライドさせて順番に配置する方法はありますか?
スペルする単語にスタイルを適用するコードは次のとおりです...
$('#pickNext').click(function() {
// remove the class from all td's
$('td').removeClass('spellword');
// pick a random word
rndWord = shuffledWords.sort(function() {
return 0.8 - Math.random();
})[0];
// apply class to all cells containing a letter from that word
$('td[data-word="' + rndWord + '"]').addClass('spellword');
});
これが私のドラッグアンドドロップのスクリプトです...
$('.drag').draggable({
helper: 'clone',
snap: '.drop',
grid: [60, 60],
revert: function(droppable) {
if (droppable === false) {
return true;
}
else {
return false;
}
}
});
$(".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);
}
}
},
適用されるスタイルは...
.spellLetter {
-webkit-box-shadow: inset 20px 0px 10px 5px #176BC9;
box-shadow: inset 0px 0px 10px 5px #176BC9;
}
ありがとう。