ランダムソートの世界に参入し、できるだけ効率的であるようにいくつかの関数を組み合わせることに問題があります。 すべてが正しく動作しますが、私は初心者のような方法でそれについて考えています私はスタックオーバーフローで私がここで見つけた2つの関数を使ってそれを構築したので、私はFrankensteinedを一緒に修正しました。ランダムオーダーのjQuery関数を効率化する
私はコードを合理化して効率を上げ、冗長性を取り除く方法についてアドバイスをいただきたいと思います。
この関数は10divsをとり、それらをランダムな順序に並べ替え、次にそのランダムな順序をランダムな順序でページの次々にフェードします。効果はきちんとしています。こちらをご覧ください:http://jsfiddle.net/danielredwood/MgFj2/
ありがとうございました!
__ページ
$(document).ready(function(){
shuffle();
});
上 初期化機能__Rearrangeのdivを
function introfade(x) {
var o = [];
for (var i = 0; i < x; i++) {
var n = Math.floor(Math.random()*x);
if ($.inArray(n, o) > 0) {
--i;
} else {
o.push(n);
}
}
return o;
}
フェード順の配列を作成し、私は1つの最適化を参照してください
function shuffle() {
var b = $('.box'),
arrange = $('<div>'),
size = b.size(),
fade = introfade(size);
while (size >= 1) {
var rand = Math.floor(Math.random() * size),
temp = b.get(rand);
arrange.append(temp);
b = b.not(temp);
size--;
}
$('.main').html(arrange.html());
$('.box').each(function(i) {
var c = $(this);
setTimeout(function() {
c.fadeTo(500, 1);
}, fade[i]*150);
});
}
「Frankenstein」を動詞として使用する場合+1。 – nnnnnn
あなたが承認してうれしい! – technopeasant
+1は 'すべて正常に動作しますが、' –