我很难弄清楚如何在我的应用程序中创建一个拖放功能,该功能将接受可拖动的项目并确定是否正确的答案,如果正确,它将显示一条消息,说明成功!

我的应用程序显示两个图像,两个图像都是比萨饼的一部分,然后它将显示8个可拖动数字,您必须选择这些数字并将它们拖动到一个可放下的框内,以检查其是否正确。所以我从...开始

 PizzaImageOne[1]="http://s23.postimg.org/6yojml8vb/Pizza_One.png"
 PizzaImageOne[2]="http://s13.postimg.org/5d8zxnb2b/pizzatwo.png"


这种情况发生了8次,所以数组的每个数字代表它持有多少个切片

然后我叫var whichImage = Math.round(Math.random()*(p-1));我将一个随机#存储到保存了比萨饼片数量的变量whichImage中,因为每个数组#都与比萨饼片图像相关,我将通过这样做来生成随机比萨饼
document.write('<img src="'+theImages[whichImage]+'">');

我用一个新的数组重新做一遍

PizzaImageTwo[1]="http://s23.postimg.org/6yojml8vb/Pizza_One.png"
PizzaImageTwo[2]="http://s13.postimg.org/5d8zxnb2b/pizzatwo.png"


完全相同,但具有新变量,因此随机调用可以与第一个不同

 var whichImage2 = Math.round(Math.random()*(p-1))


然后我有

<script>
        $(function() {
            $( "#draggable1" ).draggable();
        });
  </script>


我做了8次,所以#draggable1,#draggable2,draggable3 ... ...一直到8

然后我制作了一个数组,并将其保存到每个数组中,就像这样8次,每个可拖动函数表示1到8的数字,因为我们添加了像分数之类的比萨饼

<script>
var theimagestwo = new Array();
Draggablenumber[1] = $("#draggable1");
DraggableNumber[2] = $("#draggable2");


我这样做直到在每个数组中填满8个可拖动的数字

所以逻辑是MyAnswer = whichimage + whichimage2然后我必须检查是否拖动DraggableNumber [MyAnswer]然后我有正确的答案...

我将如何创建此功能?

最佳答案

发表评论后,这将是一项轻松的任务,您只需执行以下步骤:


创建slices数组中包含的两个随机数
计算这些值的总和
当您删除数字时,比较此数字是否等于总和
切片


这里有一个示例代码:

的HTML

<div id="slices">

</div>

<div id="options">
  <div data-index="1">1</div>
  <div data-index="2">2</div>
  <div data-index="3">3</div>
  <div data-index="4">4</div>
  <div data-index="5">5</div>
  <div data-index="6">6</div>
  <div data-index="7">7</div>
  <div data-index="8">8</div>
</div>

<div id="area">
drop area
</div>


jQuery UI

//---Vars
var slices = $("#slices");
var options = $("#options");
var area = $("#area");

var selected;
var result;

//---Array of images
var pizzas = [
  {image: "http://s23.postimg.org/6yojml8vb/Pizza_One.png", value: 1},
  {image: "http://s13.postimg.org/5d8zxnb2b/pizzatwo.png", value: 2},
  {image: "http://s12.postimg.org/xfsxldqyx/pizzathree.png", value: 3},
  {image: "http://s14.postimg.org/d6tdq0865/pizzafour.png", value: 4}
];
var total = pizzas.length;

//---Make boxes dragables
options.find("div").draggable();

//---When the boxes are dropped
area.droppable({

    drop: function(event, ui){

    if( Number( ui.draggable.attr("data-index") ) == result ){

        alert("correct");

    }else{

        alert("incorrect");

    }

  }

});

//---Insert random pizza slices
function insertPizzas(){

  selected = [];
  result = 0;

  //---Generate aleatory pieces
  var rand

  while(selected.length < 2){

    //---Random value
    rand = Math.floor( Math.random() * total );

    //---Sum result
    result += pizzas[rand].value;

    selected.push( rand );

  }

  //---Clear the slices
  slices.html("");

  //---Add the new slices
  selected.forEach(function(number){

    var img = $("<img/>");

    img.attr("src", pizzas[number].image);

    slices.append(img);

  });

}

insertPizzas();


jsfiddle

关于javascript - 如何使用图像阵列创建拖放功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34257809/

10-09 16:58