Javascript - 在单词中拖动字母(重新排列)

2024-03-16

我目前正在开发一款名为“词洗牌 http://wordshuffle.bplaced.net/".
(目前单词是德语,用于测试目的,如果你想玩的话)

我的进步进展顺利,但我决定改变你玩游戏的方式。目前,您必须通过在文本字段中输入您的猜测来猜测该单词。
所以我现在的想法是,人们可以通过按正确的顺序拖放单词来重新排列单词中的字母,而不是将其输入到文本字段中。

由于我不擅长 javascript(我认为这应该最适合 javascript),因此我需要帮助。
但是,我必须能够从中获取值,以便能够将其与正确的单词进行比较。
提交按钮应该传递该值。

I made a concept art to get a better idea of it:
enter image description here


这是一个使用的工作示例jquery-ui 可排序 https://jqueryui.com/sortable/#display-grid e and Fisher-Yates 洗牌算法 https://stackoverflow.com/a/25984542/5483521 :

$(function() {
  $("#wordblock").sortable();
  $("#wordblock").disableSelection();


  const word = 'example';
  let d_word = word.split('');
  shuffle(d_word);

  const lis = [];
  for (let i = 0; i < d_word.length; i++) {
    lis.push('<li class="ui-state-default">' + d_word[i] + '</li>')
  }

  $('#wordblock').html(lis.join(''));

  $('#wordblock').mouseup(function() {
    setTimeout(() => {
      let r_word = '';
      $('#wordblock>li').each(function(e) {
        r_word += $(this).text();
      });
      if (r_word == word) {
        console.log("YOU FOUND IT! : " + r_word);
      } else {
        console.log("Keep trying!");
      }
    }, 0);
  });

});

function shuffle(a, b, c, d) {
  c = a.length;
  while (c) b = Math.random() * (--c + 1) | 0, d = a[c], a[c] = a[b], a[b] = d
}
#wordblock {
  list-style-type: none;
  margin: 0;
  padding: 0;
  
  /* prevent text selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}  


#wordblock li {
  margin: 3px 3px 3px 0;
  padding: 1px;
  width: 40px;
  float: left;
  font-size: 3em;
  text-align: center;
  cursor: pointer;
  font-family: arial;
  background-color: rgb(0,100,155);
  color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>

<ul id="wordblock">
</ul>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript - 在单词中拖动字母(重新排列) 的相关文章

随机推荐

  • 如何使用javascript获取html中的元素背景图像

    我想获取使用 css 或元素背景属性设置的所有 html 页面元素的背景图像 我怎样才能使用javascript做到这一点 The getStyle 下面的函数取自http www quirksmode org dom getstyles
  • 重写规则以返回某些 URL 的状态 200

    我希望具有特定路径的 URL 自动返回 200 状态响应 我已尝试以下操作 但当我尝试启动 Apache 时出现错误 第一个错误 RewriteCond 错误的标志分隔符 RewriteEngine On RewriteCond THE R
  • 在 XSL 中创建空格 ( )

    我尝试通过以下方式在 XSL 文档中创建自动间距 td td
  • 从现有 VHD 创建 VM:预览门户

    现在有人知道如何在新的 Azure 门户中从现有 VHD 创建 VM 吗 我可以在manage windowsazure com 中找到很多有关如何执行此操作的信息 但在portal azure com 中没有找到任何有关此功能的信息 从字
  • PendingIntent 启动和停止服务

    我正在尝试制作一个简单的小部件 其中带有一个启动按钮Service与OnClickPendingIntent 我可以很好地启动它 但我无法找到阻止它的方法 我知道我可以用BroadcastReceiver或类似的东西 但我想避免硬编码 这是
  • 如何将快照文件转换为任何其他格式?

    有没有办法将 Sql Server 快照 文件 ss 文件 转换为其他格式 例如 xml xls 或 txt 等 Thanks 快照文件是稀疏文件 http msdn microsoft com en us library aa365564
  • 理解 iOS Swift 2 中的随机数

    如何使程序中的随机数随着时间的推移而不断变化 即每次我想使用它时都成为范围内的新随机数 我很困惑 我已经阅读了 20 多篇关于如何用这种语言生成随机数的不同帖子和文章 我对此还很陌生 但我似乎无法让它发挥作用 我基本上是想从 1 0 3 0
  • 头文件之间的循环依赖

    我正在尝试实现一个包含两个类的树状结构 Tree and Node 问题是 我想从每个类调用另一个类的函数 因此简单的前向声明是不够的 让我们看一个例子 Tree h ifndef TREE 20100118 define TREE 201
  • 如何将附加参数传递给 jQuery DataTable ajax 调用?

    加载 jQuery DataTable 时 我有如下所示的代码 如何向 AJAX 调用传递附加参数 下面的问题和答案中建议的 fnServerParams 回调不起作用 也就是说 天真地使用aodata push 结果是 push is u
  • 用c#在服务器上写入XML值

    我正在尝试将值更新为 xml 文件上的标记 我使用 xmlDoc Save URLString 在本地它可以工作 但是如果我从服务器读取文件 我会收到错误 URI 不可能 服务器上的文件和文件夹权限设置为 777 None
  • 如何正确启用/禁用Flutter的Button

    经研究 当 onPressed 为 null 时 Flutter 的 Button 会自动禁用 然而 由于我必要的测试功能 我被迫放置一个箭头函数 gt 它似乎不会触发 onPressed 实际上为 null 而是返回 null 作为值 因
  • ANR(强制关闭/等待),同时生成足够大的列表

    我正在创建一种文件资源管理器 其中如果将任何应用程序文件复制到手机 SD 卡 我将在带有对话框主题的活动中向用户显示它 对于复制的每个新 app apk 我都会将应用程序的名称和位置附加到对话框中 并且列表是可滚动的 我的问题是 如果我一次
  • 使用 Fast API 接收图像,使用 cv2 处理然后返回

    我正在尝试构建一个 API 它接收图像并对其进行一些基本处理 然后使用 Open CV 和 Fast API 返回它的更新副本 到目前为止 我的接收器工作得很好 但是当我尝试对处理后的图像进行 Base64 编码并将其发送回时 我的移动前端
  • 类型错误:无法深度复制此模式对象

    试图理解我的 变量 类中的这个错误 我希望在我的 Variable 类中存储 sre SRE Pattern 我刚刚开始复制 Variable 类 并注意到它导致我的所有 Variable 类实例发生更改 我现在明白我需要深度复制此类 但现
  • CAPL 编程使用 Timer 作为延迟

    我一直在编写一个 CAPL 脚本 它会在一定的延迟后在每个通道 2 个 上发送消息 我想使用生成以下延迟设置定时器 and mtimer 正在运行功能 我可以使用 setTimer 函数 但我不知道如何使用mtimer 正在运行 代码如下所
  • PhoneGap / Android 自定义键盘

    我正在开发一个具有多个input type numer 元素 目前仅限安卓 内置数字键盘有两个问题 it s inconsistent different on different versions of Android it has un
  • 如何向 ASP.NET 中的元素添加多个类?

    我正在尝试以编程方式将第二个类添加到 td C 中的元素 我想要添加类的元素已经分配了一个类 如果我做类似的事情 myObject CssClass MyClass 它只是覆盖原来的类 我想我可以做类似的事情 myObject CssCla
  • 关于*管理*测试驱动和/或敏捷开发的最佳具体“操作手册”? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一本易于理解的书来呈现给我的老板 团队 背景资料 我们越来越多的工作会议让我的老板 团队思考
  • R Shiny - 条件面板中的条件面板

    我想知道是否可以在另一个条件面板中包含一个条件面板 例如 如果我有一个包含两个选项的下拉列表 1 和 2 选择 1 将显示一组选项 选择 2 将显示另一组选项 但是是否可以在这些条件面板中嵌套一个条件面板 以便我可以在选项 1 的输入中拥有
  • Javascript - 在单词中拖动字母(重新排列)

    我目前正在开发一款名为 词洗牌 http wordshuffle bplaced net 目前单词是德语 用于测试目的 如果你想玩的话 我的进步进展顺利 但我决定改变你玩游戏的方式 目前 您必须通过在文本字段中输入您的猜测来猜测该单词 所以