jQuery UI 可排序动画

2024-02-04

我有一个类似网格的列表,并且按照计划在其中运行可排序功能。我想为每个项目设置动画,除了被操纵以在列表中平滑滑动的项目之外。我在这里设置了一个示例:http://jsfiddle.net/wpmte/ http://jsfiddle.net/wpmte/.

<ul id="sort">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
    <li>Item 7</li>
    <li>Item 8</li>
    <li>Item 9</li>
</ul>

CSS:

ul {
    margin: 0;
    padding: 0;
}
li {
    display: inline-block;
    margin: 5px;
    padding: 5px;
    background: #0f0;
    width: 25%;
}
.ui-sortable-placeholder {
    height: 0 !important;
}

最后,JS:

$('#sort').sortable({ 

});

如何为元素设置动画以通过过渡填充空间而不仅仅是跳跃?


我是这样做的:

// needed to allow for multiple placeholders as they animate
var placeholderNumber = 0;

$('#new-ct-banner-tree').sortable({
    // basic setup
    distance: 15,
    placeholder: 'tree-drop-placeholder',
    items: ".tree-item:not(.new-ct-tree-group-item, .group-add-button)",
    connectWith: ".connectedSortable",
    handle: ".top-drag-handle",
    helper: "clone",
    opacity: 0.75,
    revert: 300,
    scrollSpeed: 4,
    cursor: "move",

    start: function(event, ui) {
        // When starting the drag, add our replacement placeholder. We set the height of the default placeholder to 30px (see css below), so the replacement needs to be that same height and the original gets a negative margin of that height and our replacement consumes the original.
        $(ui.placeholder).before('<div class="temp-spacer-' + placeholderNumber +     '"></div>').css('margin-top', '-30px');
        $('.temp-spacer-' + placeholderNumber).css('height', '30px');
    },
    change: function(e, ui) {
        // When placeholder changes, animage away old one, and animate in new one, but only if a little delay has passed to avoid crazy jank town.
        if ($(ui.item).parent().hasClass('delayPlaceholderMovement') == false) {
            // If the parent doesn't have the 'delay' class, proceed to animating away the current placeholder.
            $('.temp-spacer-' + placeholderNumber).animate({
                height: "0px"
            }, 200, function() {
                $(this).remove();
            });
            // iterate the placeholder number to keep old and new ones separated.
            placeholderNumber = placeholderNumber + 1;

            // add and animate in the new location placeholder.
            $(ui.placeholder).before('<div style="height:0px;" class="temp-spacer-' + placeholderNumber + '"></div>');
            $('.temp-spacer-' + placeholderNumber).animate({
                height: "30px"
            }, 200);
        };
        // add the 'delay' class to the parent
        $(ui.item).parent().addClass('delayPlaceholderMovement');
        // and set a timeout to remove the parent after 40ms
        window.setTimeout(function() {
            $(ui.item).parent().removeClass('delayPlaceholderMovement');
        }, 40);
    },
    stop: function(event, ui) {
        // remove our fake placeholder and strip the regular placeholders negative margin.
        $('.temp-spacer-' + placeholderNumber).css('height', 0).remove();
        $(ui.placeholder).css('margin-top', '0px');
        // clear placeholder number so this doesn't go a bagillions after performing a few dragg events.
        placeholderNumber = 0;
    }
});


// CSS:
// Setting the height of the default placeholder. If you want to style the placeholder, you'd probably set an additional class on our replacement animated placeholder.
.tree-drop-placeholder {
    height: 30px;
    width: 100%;
}

因此,默认占位符被删除并在 jquery UI 中非常突然地添加,它只是从一个位置将其添加到新位置,而无法添加 css 动画或任何内容。

我们在这里所做的是将默认占位符替换为我们自己的可以设置动画的占位符。我们为创建的每个替换占位符迭代一个唯一的编号,以便我们可以同时拥有多个现有的占位符,并以动画方式更逐渐地进出它们。

希望这可以帮助!尚未在许多浏览器中测试它,可能有比全局范围更好的地方来放置“placeholderNumber”变量。

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

jQuery UI 可排序动画 的相关文章

  • 使用 CSS 的平行四边形导航背景

    我正在尝试创建此导航菜单 绿色突出显示是活动页面 灰色是悬停状态 我可以使用以下 CSS 制作平行四边形 ul nav li a text decoration none padding 4px 10px border radius 3px
  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 选择变量的嵌套元素 - jQuery

    我希望将变量传递给函数并让函数选择该变量中的元素 我不熟悉这种情况的语法 但是有人可以建议吗 例如 当在容器内单击按钮时 我希望将该容器存储在变量中 好吧 我有那部分 但后来我希望选择该容器中的某个元素 例如 container div e
  • 简单模式对话框中链接的 Tab 键顺序

    我正在使用优秀的 jquery simplemodal 对话框插件来显示项目列表 这些项目包含超链接 除了模式对话框中的链接不会作为选项卡顺序的一部分出现之外 一切都很好 我尝试显式设置 tabindex 但由于某种原因 只有输入元素按 T
  • 如何同步两个文本框表单值?

    大家好 我是 jQuery 新手 假设我有两个 HTML 文本框 如何才能实现这样的情况 如果我在文本框 A 中写入 则相同的值会转到文本框 B 如果我在 B 中写入 则相同的值会转到 A 与删除文本相同 在 jQuery 中如何做到这一点
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 删除某个类之后的所有类

    我有一个 lt div id thisdiv class class1 class2 class3 class4 class5 gt text lt div gt 我需要能够使用 jQuery 删除 class3 之后的所有类 就像是 th
  • 文件上传控件 OnChange 事件 JQuery

    我正在尝试使用 AJAX JQUERY 和 Net HTTPHandler 构建页面来上传文件 如下所示http dotnet dzone com news async file upload jquery and http dotnet
  • jquery.validate 中是否有一个函数可以像重置表单一样重置单个字段?

    我想调用 jquery 函数来手动删除单个字段中的错误并重置错误标记 是否有一个函数可以执行此操作 类似于 resetForm 函数 您可以执行以下操作来验证单个字段 your field valid 也许它会对某人有所帮助 Thanks
  • 如何在使用页面锚点导航时设置“激活”类以在 Angular 2 中引导导航栏?

    我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站 我创建了一个始终位于页面顶部的导航栏组件 并且我正在使用页面锚点导航 id 请注意 我还没有创建路由模块 到目前为止还没有必要这样做 导航栏代码如下
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 现在 CSS3 供应商前缀有多必要? [复制]

    这个问题在这里已经有答案了 我只是想知道现在在 CSS 中指定 webkit moz ms 或 o 等供应商前缀在多大程度上仍然有必要 如果我理解正确的话 opera 切换到了 webkit 所以会删除 o 对吗 IE 在 IE10 中不再
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 我可以使用 jQuery 打开下拉列表吗

    对于 HTML 中的下拉列表
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • Javascript/Jquery:确定用户是否使用鼠标滚轮、滚动条或键盘滚动

    我正在尝试让用户界面正常工作 如果他们使用鼠标滚轮 我需要让它以一种方式滚动 如果他们使用滚动条 我需要让它以另一种方式滚动 如果他们使用键盘 我需要让它以另一种方式滚动 我相信滚轮和滚动条都充当鼠标事件 但是当单击滚动条时我无法让 jav

随机推荐

  • Jenkins CI:如何在 SVN 提交上触发构建

    我需要设置哪些插件和插件功能才能让我的 Jenkins 作业在代码提交到 SVN 项目时触发构建 我已经安装了标准 SVN 插件以及 SVN 标记插件 但我没有看到任何允许触发器配置的新功能 有两种方法可以解决这个问题 我最初推荐第一个选项
  • Rust 中比较函数的相等性

    我有一个函数 它接受一个数字作为参数 然后根据该数字返回一个函数 根据许多不同的情况 它可能会返回约 50 个函数中的任何一个 并且它应该返回哪个函数的情况变得非常复杂 因此 我想构建一些测试以确保返回正确的函数 到目前为止我所拥有的看起来
  • 更强大的点版本(重复)

    我知道如何录音q到寄存器中 但我想知道是否可以设置一些东西来快速调用最后一个录音 就像 调用最后一个简短的编辑命令 参见here https stackoverflow com questions 12566235 what can the
  • 正则表达式匹配具有两个或多个特殊字符的强密码

    我需要使用 javascript 正则表达式匹配密码字段 并满足以下要求 至少 15 个字符 两个或多个小写字母 两个或多个大写字母 两位或更多数字 以下两个或多个特殊字符 我有一个正则表达式可以处理大多数情况 15 2 d 2 a z 2
  • phpmyadmin 令牌不匹配导致长时间闲置

    我安装了phpMyAdmin 4 0 4 1在我本地的开发环境中 我设置了auth type to config 我还通过此设置提供身份验证要求 cfg Servers i auth type config cfg Servers i ho
  • Google Chrome 强制下载“f.txt”文件

    更新到 Chrome 40 0 2214 111 后 当我访问某些 Google 相关网站 例如http youtube com http youtube com并在视频之前看到广告 浏览器下载一个名为f txt 我没有安装任何 adblo
  • 未找到符号:_libintl_gettext

    我正在尝试使用 C 创建一个 NodeJS 模块node gyp 该软件包依赖于 GNU 的 Gettext 库 我目前使用的是 Mac OS X Mountain Lion 我尝试过通过手动 Homebrew 甚至 Fink 自己安装该软
  • Apple 的 iMessage 模板或向现有应用程序添加扩展之间有什么区别?

    我注意到 iOS 10 消息应用程序的创建有所不同 如果您使用创建一个新项目iMessage Application选择新项目的模板 Xcode 将创建两个目标 一个应用程序和一个扩展 但该项目无法运行 从第二张图片可以看出 底部的目标选择
  • 虚拟继承是否强制基类默认可构造?

    在下面的代码中 编译器正在请求基址class X to be 默认可构造 但是 如果我删除virtual来自继承的关键字类节点 会员的访问权限m x当然 变得含糊不清 但是默认构造函数 for class X不再需要 这是什么原因呢 inc
  • Facebook Open Graph:将网站与 Facebook 页面关联

    我想在我的 Facebook 页面和我的网站之间建立关系 我已经设置了它们 并将 OG 标签添加到网站中 然而 Facebook 页面和我的网站之间似乎没有任何联系 这fb admin标签设置为我的 Facebook 用户 ID 但我想与我
  • ANTLR 歧义问题

    我有这个语法 grammar MyGrammar prog lexeme lexeme TOK INTLIT 0 9 Identifiers Letter Letter Digit fragment Letter a zA Z fragme
  • ASP.NET 会员注册问题

    我在会员资格方面遇到了困难 好吧 这真的很奇怪 我可以注册一个用户 我可以注册 我可以登录 但是 当我去注册另一个用户时 该用户没有保存在数据库中 我得到了一个 当用户尝试登录时 会员凭证验证失败事件 我假设是因为用户从未被保存 这是我用来
  • 将 Java 回调函数传递给 JSNI 方法?

    我想将成功和失败回调 Java 函数传递给 JSNI 方法 这是我到目前为止所得到的 但它不起作用 我该如何修复它 package c public class A test new Callback
  • 如何清除 ttk.Treeview 小部件中的项目?

    ing scroll Scrollbar window1 frame1 orient VERTICAL ingredients ttk Treeview window1 frame1 yscrollcommand ing scroll se
  • 当我打开模式时添加下一个和上一个按钮

    我是新手 我想问您是否可以帮我将下一个和上一个按钮添加到我的模式中 这些图片不是画廊形式的 我是添加 div 还是像这样添加一些 javascript 你能推荐一些吗 var modal document getElementById my
  • 带标题的多个图像文件上传

    我设法得到了字幕foreach循环但现在我面临一个新问题 由于嵌套循环 我的数据库中出现重复项 请检查下面的代码 JavaScript window onload function if window File window FileLis
  • Python Tkinter,使用循环设置按钮回调函数

    我正在编写一个显示按钮网格的程序 当按下按钮时 我希望它将网格中按钮的位置 行列 打印到控制台 这是我所拥有的 import Tkinter as tk class board tk Tk def init self parent None
  • DateFormatter 返回错误的时间[重复]

    这个问题在这里已经有答案了 我对 Date 进行了扩展 返回格式化字符串 extension Date var myFormattedDate String let formatter DateFormatter formatter tim
  • 变量===未定义与typeof变量===“未定义”

    The jQuery 核心风格指南 https contribute jquery org style guide js type checks建议两种不同的方法来检查变量是否已定义 全局变量 typeof variable undefin
  • jQuery UI 可排序动画

    我有一个类似网格的列表 并且按照计划在其中运行可排序功能 我想为每个项目设置动画 除了被操纵以在列表中平滑滑动的项目之外 我在这里设置了一个示例 http jsfiddle net wpmte http jsfiddle net wpmte