拉斐尔随机顺序显示物体
Raphael random order of objects to show
>使用r.set()
我创建了一个集合,其中包含我想要动画的所有对象。
var r = Raphael("holder", '100%', '100%'),
targets = r.set(),
size = 30,
offset = 10;
for (var i = 0, j = 0; j < 10; i += size, j++) {
targets.push(r.rect(i, 10, size, size));
i += offset;
}
我想使用简单的动画以随机顺序显示所有对象:
function animate() {
targets[index].animate({
fill: "#cde",
opacity: 1
}, 1000, 'linear');
index++;
if (index < targets.length) setTimeout(animate, 1000);
}
animate();
上面的代码按顺序显示所有元素,但逐个显示。
我尝试过使用插件进行随机排序:
Raphael.st.sort = function (callback) {
var cb = callback || function (a, b) {
if (a.id < b.id) {
return -1;
} else if (a.id > b.id) {
return 1;
} else {
return 0;
}
};
Array.prototype.sort(this, cb);
this.items.sort(cb);
return this;
};
function shuffle(a, b) {
return Math.random() > 0.5 ? -1 : 1;
};
但没有任何运气。
我的问题是如何随机排序要显示的元素集合?
这是我的jsfiddle:http://jsfiddle.net/Misiu/UDmym/
看起来你的代码正在工作,一切都发生得太快了,没有注意到效果。更改动画函数的值并再次观看您的小提琴。
function animate() {
targets[index].animate({
fill: "#cde",
opacity: 1
}, Math.floor(5000 * Math.random()), 'linear');
index++;
if (index < targets.length) setTimeout(animate, 1); // call doMove() very quick:-)
}
我提出了一个解决方案,也许有更好的解决方案,但这个对我有用:
function shuffle(a, b) {
return Math.random() > 0.5 ? -1 : 1;
}
var r = Raphael("holder", '100%', '100%'),
targets = r.set(),
tmp = [],
size = 30,
offset = 10;
for (var i = 0, j = 0; j < 10; i += size, j++) {
tmp.push(r.rect(i, 10, size, size));
i += offset;
}
tmp.sort(shuffle);
for (var i = 0, j = tmp.length; i < j; i++) {
targets.push(tmp[i]);
}
tmp = null;
targets.attr({
fill: "#efe",
stroke: "#fff",
"stroke-dasharray": "- ",
opacity: 0.2
});
所以基本上我把所有的矩形都添加到临时数组中,然后我随机化它们,最后将它们添加到目标中。
正如我所写的,这是简单的解决方案,欢迎任何其他尝试!
相关文章:
- 使用JS按顺序显示图像,而不是随机显示
- 如何随机显示列表项的顺序
- 我应该怎么做才能将这个数组从随机更改为在页面刷新时按顺序显示
- 批次图 在 X 轴上按顺序显示不同年份的数据
- 文本未按正确的顺序显示
- 要按顺序显示的图像
- 通过Angular Directive按顺序显示月份
- 如何知道选中/突出显示的文本jquery的顺序出现
- 循环中元素的显示顺序
- Javascript测试-使用Array.prototype以随机顺序显示选项
- 如何以反向/从右到左的顺序显示阿拉伯语网站的Nivo滑块分页
- 从下拉列表中的数组中选取某个项目,然后将其显示为第一项并按字母顺序显示
- 来自 flickr 的图像数组未按预期顺序显示
- 以随机顺序显示 ng 重复项目
- 按顺序显示动画 SVG 元素
- 如何更改服务器上项目的顺序,客户端获得正确的显示顺序
- 为什么JSON.stringify的显示顺序与遍历数组的顺序不同
- 解析笑脸与文本字符串html和保持笑脸在显示顺序
- HTML SSE或PHP SSE . innerhtml显示顺序
- 使用CF/Javascript/HTML随机化DB中MC答案的显示顺序