【问题标题】:How to combine jquery ui draggable sortable stuff with custom scale code?如何将 jquery ui 可拖动的可排序内容与自定义比例代码相结合?
【发布时间】:2012-02-11 12:34:54
【问题描述】:

我正在尝试将我的可拖动排序的东西与一些适合我的比例代码结合起来。我只是还没找到好的解决方案。

看一下: http://jsfiddle.net/UXLAE/7/

我已将比例代码注释掉,以便您了解应用的实际工作方式。

您拥有顶部面板,并且可以将项目从那里拖到底部面板(项目被克隆)。 在底部面板中,您必须能够对项目进行排序。

现在我还希望能够在鼠标悬停时缩放顶部和底部面板中的每个项目。比例尺必须是叠加的,并且必须与源项目具有相同的中心。我没有用 .animate() 或 .effect("scale") 来做这件事,这会使事情变得容易得多,但我设法编写了一些效果很好的自定义代码(我注释掉的部分)。我的问题是现在我不知道如何将自定义代码与我已有的代码结合起来。他们有点互相破坏;)但要自己找。

如果您能发表一些想法甚至是解决方案,那就太好了。

问候

【问题讨论】:

  • 好吧 .. 有点基本但谢谢 :)
  • 那么,在我给你一些想法和解决方案之后,我修复了你的损坏的代码,你仍然没有接受我的答案?
  • 您的想法很好,谢谢。但是您的解决方案没有解决我最初的问题,所以不,我不能接受您的回答,我还对您的回答写了评论为什么我不能。
  • 你已经看过了? jsfiddle.net/UXLAE/27

标签: javascript jquery html css jquery-ui


【解决方案1】:

您的原始元素运行良好,但我看到您注释掉的代码破坏了功能。

看看你的可放置代码:

accept: "#topSquareList li",

您的缩放功能创建了一个不属于#topSquareList 的克隆。我怀疑这就是原因。

当您使用 clone() 时,此克隆不是 #topSquareList 的子代(只有原始版本是),这就是您的选择器在可放置代码中与它不匹配的原因。您需要整理好要删除的内容并制作适当的选择器。

更新:

经过一番折腾,我想出了这个:http://jsfiddle.net/UXLAE/27/

您的比例代码现在与拖放/排序结合使用。您应该将我所做的与您的原始代码进行比较,以找出它为什么不起作用 - 原因有很多。有帮助吗?

【讨论】:

  • 我将 zoomHelper 类添加到接受中,它可以工作。 jsfiddle.net/UXLAE/11
  • 您的解决方案存在一些问题。我需要那里原始项目的克隆,而不是助手。还破坏的是底部的可排序性。
  • 一次一个问题。你修复了你的 droppable 上的接受选择器吗?
  • 有时,如果你一次处理一个问题,你最终会回到你开始的地方;D 但假设我已经“修复”了我的 droppable 上的接受选择器,然后呢?
  • 那么您已经解决了代码的明显问题并继续编码。让我知道您接下来会遇到什么问题。
【解决方案2】:

如果您可以使用 CSS 转换,那么只需添加以下规则即可在不使用任何 JavaScript 的情况下完成缩放,因此对 jQueryUI 拖放或排序的影响为零。

.square:hover {
    -webkit-transform:scale(1.2);
    -ms-transform:scale(1.2);
    -o-transform:scale(1.2);
    -moz-transform:scale(1.2);
    transform:scale(1.2);
}

transform 的本机浏览器支持不是complete,但完全支持主要的现代浏览器。如果您需要支持这些浏览器,IE workaround。

【讨论】:

  • 嗯不错,但在这种情况下,我将不得不处理父元素的溢出问题,在此过程中破坏了我的布局。我想这一切都有其优点和缺点;)
  • 抱歉,但是使用 CSS 缩放元素会使 jquery 的可拖动和可排序退出有点混乱。偏移量错误,dragstart 位置错误。比例越高,影响越大。 stackoverflow.com/questions/10212683/…
猜你喜欢
  • 2013-08-26
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
相关资源
最近更新 更多