当前位置:  开发笔记 > 编程语言 > 正文

如何使用JavaScript创建等距拖放网格?

如何解决《如何使用JavaScript创建等距拖放网格?》经验,为你挑选了1个好方法。

如何使用等距拖放Grid使用JavaScript将对象拖动到网格上?

我开始使用WebGL(Three.js),但这不是一个好的解决方案(对我的目的没有真正的响应).所以现在我考虑使用HTML Elements.

网格看起来像这样(最后只是一个图像)

等距网格 现在我只想获得一些方法(没有代码,只是想法)如何实现它:

网格作为图像(如附图)

将对象从边栏拖动到其中(1*1,2*2,3*3,...瓷砖大)

无法在同一个磁贴上放下两个重叠的对象

哪种方式可以做到?它也应该可以在移动设备上使用.



1> Gershom supp..:

当然你不应该期待这个问题的完整答案!但这里有一些东西让你开始(我个人认为最有成效的方向).

这是你的网格,但在html/css中,这意味着你现在可以轻松地与它进行交互.

http://jsfiddle.net/kqs0gq78/

这是一个简单的html/css网格; 利用该transform属性获得3D效果.网格可以任意调整大小; 现在有10行/列,网格是100x100,因此每个单元格是10x10.如果您决定需要更多单元格,则可能需要使用javascript生成html.如果添加更多单元格,则需要将css值更改为超过100x100大小.

您现在可以像通常使用javascript一样检测某些切片上的点击,开始检查悬停事件(这意味着用户拖动了切片),最后一旦用户释放了指示拖动操作结束的点击.

希望这很有用!:)

.wrapper {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  text-align: center;
}
.wrapper:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 0;
  height: 100%;
}
.wrapper > .grid {
  display: inline-block;
  vertical-align: middle;
}
.grid > .row {
  font-size: 0;
  width: 100px;
  white-space: nowrap;
}
.grid > .row > .cell {
  position: relative;
  display: inline-block;
  width: 10px;
  height: 10px;
  outline: 1px solid rgba(0, 0, 0, 0.3);
}
.grid > .row > .cell:hover {
  background-color: red;
}
.grid {
  transform: rotateX(40deg) rotateZ(45deg);
}
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有