【发布时间】:2014-06-27 17:37:06
【问题描述】:
我有一个元素列表,希望每隔 1 秒以淡入效果依次显示它们。我使用了本文 (http://demosthenes.info/blog/630/Fade-In-Elements-Sequentially-With-JQuery-and-CSS3) 中教授的 jQuery 和 CSS3 技术。它工作得很好,但是从这里我需要使用“数据顺序”属性以特定顺序显示元素,但是,我希望这种排序仅适用于按顺序显示,而不适用于 html 结构。
在下面的问题中,有人已经尝试过类似的方法,但解决方案修改了 html 元素的结构,重新排列了块。
https://stackoverflow.com/questions/8433691/sorting-list-of-elements-in-jquery/23298715 # 23298715
我希望数据顺序等于元素出现的时间,保持初始 html 结构。是否有可能将这两种技术结合起来实现所提议的?
到目前为止,我有以下代码:
/ / Display in sequence
$(function () {
$('.element').each(function(i) {
$(this).delay((i++) * 500).fadeTo(1000, 1);
})
});
// Use the attribute data-order
jQuery (function ($) {
var $ fields, $ container, sorted, index;
$ container = $ ('body');
$ fields = $ (".element[data-order]", $ container);
sorted = [];
$ fields.detach (.) each (function () {
sorted [parseInt (this.getAttribute ("data-order"), 10)] = this;
});
for (index in sorted) {
if (String (Number (index)) === index) {
$ container.append (sorted [index]);
}
}
});
【问题讨论】:
-
请修正您的代码格式;很难知道您复制/粘贴它的方式是什么,以及代码中的语法错误是什么。例如:
fadeTo (1000, 1)..;和detach(.)each都不是有效的 JavaScript,让我们猜测您的意图。
标签: jquery css sorting sequence