javascript - Select2.js 和 jQuery slideDown 动画滞后/抖动

标签 javascript jquery animation select

我有一个 select2.js 下拉菜单,我想制作动画;我希望下拉菜单可以滑动而不是突然出现。

这就是我现在正在做的:

var select = $("#select").select2({
     minimumResultsForSearch: -1
});

$('#select').on('select2:open', function (e) {
    $("#select option[value='0']").remove();
    $('.select2-results').hide().slideDown("slow", "easeInOutQuint");
});

问题是我第一次打开下拉菜单时,有轻微的滞后/抖动。以下是对正在发生的事情的更准确描述:

  • 点击选择容器
  • 选择下拉菜单开始向下滑动。
  • 动画下降 20%,它滞后了 0.2 秒(试图消除它)
  • 向下滑动然后继续正常。

第一次之后,slideDown就完美无缺了。这只是第一次出现抖动/滞后。

有什么想法吗?

请注意,easeInOutQuint 来自 jQuery Mobile 转换。

最佳答案

你需要在 .select2-dropdown 上应用它,超时功能检查下面的代码我是如何实现的

jQuery('#select').on('select2:open', function (e) {
   jQuery('.select2-dropdown').hide();
   setTimeout(function(){ jQuery('.select2-dropdown').slideDown("slow", "easeInOutQuint"); }, 200);
});

关于javascript - Select2.js 和 jQuery slideDown 动画滞后/抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800694/

相关文章:

javascript - 用纯 Js 在每个 li 上应用函数

javascript - AJAX 回调从未调用,不成功或错误

javascript - 绘制SVG路径的最简单方法

android - 似乎 windowAnimationStyle 被忽略了,如何为自定义对话框设置动画?

android - 使用 AnimationDrawable 制作大型动画

javascript - 如何将 int 变量从 python 传输到 javascript?

javascript - Euler #2 Fibonacci Javascript 函数在处理数字后只会返回零

javascript - 为什么将函数参数作为字符串或引用传递时 `this` 会发生变化?

jquery - 在 JQuery/jqGrid 上读取服务器响应

javascript - 如果取消选中所有子复选框,如何取消选中父复选框,反之亦然?