应用 CSS3 缩放时可排序行为错误

2024-03-04

我正在使用 CSS 转换缩放 JQuery 可排序元素。拖动时可排序项目的起始位置和偏移量都是错误的,因为 JQuery 不考虑 CSS 比例。我用这里找到的代码部分解决了这个问题:

jQuery 拖动/使用 CSS 变换比例调整大小 https://stackoverflow.com/questions/10212683/jquery-drag-resize-with-css-transform-scale%5B1%5D

但我无法解决的是拖动开始时的可排序项目位置。它向上向右跳一点。我不知道要放入启动事件处理程序中的内容:

        start: function(e, ui)
        {
            // something is needed here to fix the initial offset
        }

这个小提琴显示了问题:http://jsfiddle.net/adrianrosca/zbvLp/4/ http://jsfiddle.net/adrianrosca/zbvLp/4/


与一处区别可拖动的那是转换不是在元素本身上,而是在父元素上。所以它改变了一点逻辑。

这是针对这种特定情况的解决方案,但您会发现它可能会根据情况而变化。例如,如果你改变变换原点,或者如果您有水平排序,则必须对其进行调整。但逻辑保持不变:

var zoomScale = 0.5;

$(".container")
  .sortable({

    sort: function(e, ui) {
    console.log(ui.position.left)
      var changeLeft = ui.position.left - ui.originalPosition.left;
      // For left position, the problem here is not only the scaling,
      // but the transform origin. Since the position is dynamic
      // the left coordinate you get from ui.position is not the one
      // used by transform origin. You need to adjust so that
      // it stays "0", this way the transform will replace it properly
      var newLeft = ui.originalPosition.left + changeLeft / zoomScale - ui.item.parent().offset().left;

      // For top, it's simpler. Since origin is top, 
      // no need to adjust the offset. Simply undo the correction
      // on the position that transform is doing so that
      // it stays with the mouse position
      var newTop = ui.position.top / zoomScale;

      ui.helper.css({
        left: newLeft,
        top: newTop
      });
    }
  });

http://jsfiddle.net/aL4ntzsh/5/ http://jsfiddle.net/aL4ntzsh/5/

EDIT:

之前的答案适用于定位,但正如 Decent Dabbler 所指出的,验证何时应该进行排序的交集函数存在一个缺陷。基本上,位置计算正确,但项目保留width and height未转换的值,这导致了问题。 您可以通过在开始事件时修改这些值来调整这些值,以考虑比例因子。例如这样:

 start: function(e, ui) {
      var items = $(this).data()['ui-sortable'].items;
      items.forEach(function(item) {
        item.height *= zoomScale;
        item.width *= zoomScale;
      });
    }

http://jsfiddle.net/rgxnup4v/2/ http://jsfiddle.net/rgxnup4v/2/

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

应用 CSS3 缩放时可排序行为错误 的相关文章

  • 如何设置视频文件的预览,从输入类型='文件'中选择

    在我的模块之一中 我需要从 input type file 浏览视频 之后我需要在开始上传之前显示选定的视频 我使用基本的 HTML 标签来显示 但它不起作用 这是代码 document on change file multi video
  • 如何保留用户的输入打印?

    我正在尝试添加用户的评论 所以我只是尝试读取输入并将其发送以进行打印 但问题是 一旦我刷新页面或输入另一个输入 打印的输入就会消失 因此 即使刷新页面或重新输入新评论 我也希望始终保持所有用户的显示 代码 div div
  • JSON 数据中的 jQGrid celledit 显示 URL 未设置警报

    我需要从服务器加载 JSON 并且希望用户能够单击并编辑该值 但是当他们编辑时 它不应该调用服务器 我的意思是我不会立即更新 所以我不想编辑网址 所以我尝试了 ClientArray 但它仍然显示 Url is not set 警报框 但是
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • jqGrid - 使所有列不可排序?

    除了添加之外 有没有办法使网格上的所有列都不可排序sortable false到每一列 我知道您可以在网格级别设置全局选项 但不知道是否可以在 colModel 级别执行此操作 您可以使用 colmodel 模板来实现此目的 cmTempl
  • defaultDate 选项与 setDate 方法之间的差异

    我正在尝试使用jQueryUI DatePicker 我必须了解的主要事情之一是在页面加载时设置日期的方式 经过一些研究后 我发现有两种不同的方法可以做到这一点 using defaultDate option using setDate
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 使用 AJAX 加载部分视图不起作用

    请原谅我 我是 MVC 和 AJAX 的新手 目前我只是提交一个表单 我想使用表单中的数据使用 ajax 更新部分视图中的表 My UserInfo部分视图如下所示 model IEnumerable
  • 将鼠标悬停在原点时会触发translateY()

    当您将光标移动到按钮底部时 是否可以无限期地不触发动画 它看起来是这样的 gif https i stack imgur com QwdHW gif and codepen https codepen io jaeyson pen GwwJ
  • 过滤自定义选择器是否大于 jQuery 中的数字[重复]

    这个问题在这里已经有答案了 快给你一份 我查看了 jQuery com 中的选择器 但找不到按大于数字的选择器进行过滤的方法 我想做这个 level gt 4 hide 我的 html 看起来像这样 div Test div 如何使用该语法
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • CSS 到底如何计算相对尺寸

    我想更好地理解某些 CSS 行为 这与具体问题无关 我只是在调试网站时遇到的 让我们在固定位置的 div 中放置一个全宽图像 div img style width 100 src https via placeholder com 150
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 编辑第一个选项名称

    我有以下我无法访问的代码 我想要做的是将一些文本添加到现在为空的第一个选项中 诸如 选择地址 之类的文本
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green

随机推荐

  • 如何检测CSS3调整大小事件

    CSS3 resize 属性可以分配给任意元素 我正在寻找一种方法来检测 div 上的此类调整大小 我不介意它目前仅在 Firefox 中工作 div resize horizontal overflow hidden 不幸的是 onres
  • 为什么我在制作 Spring 项目时会收到​​ not Exposure to the weaver 警告?

    当我制作 Spring 项目时 我似乎收到了很多这样的警告 该项目使用编译时编织和各种 Spring 注释 例如 Transactional Autowired 和 Configurable 我有三个问题 它们是什么 有什么效果 我应该关心
  • 当我结合 UIPanGestureRecognizer 和自动布局时,我的 UIViews 搞砸了

    当我沿着圆形轨迹拖动手指时 我想要一个球来跟踪我的手指 以适应 iPhone 或 iPad 上每个允许的设备方向 当设备旋转时 视图似乎正确居中 但球不会停留在圆周上 并且当我拖动它时 它似乎会去任何地方 EDIT 马丁 R的回答 http
  • 如何下载特定谷歌云“服务”的代码

    This doc https cloud google com appengine docs python tools downloading source code显示下载我在应用程序引擎中拥有的应用程序源代码的命令 appcfg py
  • Spring MVC 在表单中选择值:表单验证错误后选择

    我的验证表单有问题 该表单有很多不同的字段 输入文本字段 选择选项 多重选择选项 我已经使用 Spring Security 开发了有关验证表单的所有逻辑源代码 但是当验证表单失败 例如 用户没有填写任何内容 并再次重新加载表单时 所有输入
  • 没有开发者许可证/应用商店的 iOS 应用

    我是 iPhone 开发新手 想知道是否有一个好的 简单的指南可以让我在不加入开发者计划的情况下在越狱手机上安装 iOS 应用程序 基本上 我不知道我是否有时间学习我需要学习的所有内容 但我想开始看看它会带来什么结果 一旦我有了一些像样的东
  • 为什么我的可转换核心数据属性不使用我的自定义 NSValueTransformer?

    我有一个核心数据应用程序 具有相当简单的数据模型 我希望能够将 NSImage 实例作为 PNG Bitmap NSData 对象存储在持久存储中 以节省空间 为此 我编写了一个简单的 NSValueTransformer 将 NSImag
  • 从日期中提取年中的天数

    我有一个这样的日期列表 library lubridate my dates lt c 03 01 2006 28 01 2006 12 01 2008 02 02 2006 03 03 2008 my dates lt dmy my da
  • 在密码框的某些事件中显示密码字符

    我正在开发一个 Windows Phone 应用程序 我要求用户登录 在登录页面上 用户必须输入密码 现在我想要的是给用户一个复选框 选择该复选框后应显示密码的字符 我没有在密码框中看到任何显示密码字符的属性 请建议一些方法来做到这一点 不
  • 调试和分析网络工作者

    我正在运行计算 例如网络工作者的寻路 这可能需要几秒钟 我想优化它 对于我当前的代码来说 Chrome 似乎快了大约 3 倍 但是时间花在哪里或者为什么我不知道 一般来说 如何调试 Web Worker 如何分析网络工作者 火狐和 Chro
  • 使用 jQuery 隐藏跨度

    即使已经嵌入图像 如果没有文本 如何隐藏跨度 基本上每个跨度中都嵌入了很少的网页图标和视频图标 访问网站 webicon 查看视频 videoicon 因此 如果 没有链接文本 嵌入WEBICON 包括图像图标在内的整个内容都应该隐藏 di
  • 如何让 Backbone.ajax 返回成功数据

    我试图让 Backbone ajax 返回集合 集合 我需要程序的另一部分的模型 我想让数据在与 ajax 方法相同的级别上可用 Backbone ajax dataType jsonp url https api twitter com
  • 如何通过字符串或整数获取枚举值

    如果我有枚举字符串或枚举 int 值 如何获取枚举值 例如 如果我有一个枚举如下 public enum TestEnum Value1 1 Value2 2 Value3 3 在某些字符串变量中 我的值 value1 如下 string
  • 我想找到线程消息并使用 slack-api 删除它

    可以通过以下方法找到私信或私信im history and converstation history 如何查找话题消息 我想找到线程消息并删除它们 查找话题消息 您需要使用conversations history https api s
  • jQuery 验证插件 - 如何在页面加载时显示标签

    填写输入后 该插件会插入一个标签 但是我希望在页面加载时插入所有标签 任何想法都会很棒 谢谢 该插件的链接在这里 http jqueryvalidation org documentation http jqueryvalidation o
  • 如何计算列表中点的距离?

    我有两组列表 A 和 O 它们都有来自 x y z 坐标的点 我想计算A点和B点之间的距离 我使用了for循环 但它只给了我一个结果 它应该从结果中给出 8 个数字 我很感激有人能看一下 这是我的项目的最后一步 Ax 232 34 233
  • 如何设置 Eclipse 工作区机制来共享设置?

    我该如何配置这个工具 我已经在 Eclipse 环境中设置了首选项 底部图标显示工作区机制正常 但是 当我打开工作区或创建新工作区时 没有任何反应 没有任何首选项 如何设置工作区机制 以及如何告诉工作区使用另一个工作区的设置 默认情况下 工
  • 在面向对象编程中,null 的最佳替代方案是什么?

    我觉得不满意在面向对象编程中 有其他解决方案吗 我不喜欢避免它this way http en wikipedia org wiki Null Object pattern either 最好的处理方法是什么 Java 8 有新的Optio
  • 在 Rails 中使用部分的最佳实践

    为了与 DRY 原则保持一致 当我重复某个特定模式超过一两次时 我会尝试使用部分模式 结果 我的一些观点由十个或更多不同的部分组成 我担心这可能会对整体表现产生负面影响 一些编程书籍将部分的使用与方法的使用进行比较 那么我应该使用相同的理由
  • 应用 CSS3 缩放时可排序行为错误

    我正在使用 CSS 转换缩放 JQuery 可排序元素 拖动时可排序项目的起始位置和偏移量都是错误的 因为 JQuery 不考虑 CSS 比例 我用这里找到的代码部分解决了这个问题 jQuery 拖动 使用 CSS 变换比例调整大小 htt