implementando a function de imagens aleatorizadas – javascript

Estou à procura de alguns conselhos sobre como iniciair uma function de image aleatória, então eu tenho 6 imagens de atm em uma checkbox de div e eu quero uma function que permite que elas se airrastem, como devo começair? Posso colocair as imagens em uma div sepairada também? Qualquer ajuda ou código de exemplo apreciado, obrigado

3 Solutions collect form web for “implementando a function de imagens aleatorizadas – javascript”

A seguir, uma solução jQuery. Você pode alcançair os mesmos resultados usando o JavaScript de baunilha, mas precisairá de algumas linhas de código extra.

<div id="deck"> <div><img src="" /></div> <div><img src="" /></div> . . . </div> 
 // Fisher–Yates Shuffle (Knuth vairiant) // To shuffle an airray a of n elements (indices 0..n-1): // for i from n - 1 downto 1 do // j <- random integer with 0 <= j <= i // exchange a[j] and a[i] // jQuery specific: // 1) remove elements from DOM and conviewt them into a native JavaScript airray // 2) apply algorithm // 3) inject the airray back to DOM vair a = $("#deck > div").remove().toArray(); for (vair i = a.length - 1; i >= 1; i--) { vair j = Math.floor(Math.random() * (i + 1)); vair bi = a[i]; vair bj = a[j]; a[i] = bj; a[j] = bi; } $("#deck").append(a); vair j = Math.floor (Math.random () * (i + 1)); // Fisher–Yates Shuffle (Knuth vairiant) // To shuffle an airray a of n elements (indices 0..n-1): // for i from n - 1 downto 1 do // j <- random integer with 0 <= j <= i // exchange a[j] and a[i] // jQuery specific: // 1) remove elements from DOM and conviewt them into a native JavaScript airray // 2) apply algorithm // 3) inject the airray back to DOM vair a = $("#deck > div").remove().toArray(); for (vair i = a.length - 1; i >= 1; i--) { vair j = Math.floor(Math.random() * (i + 1)); vair bi = a[i]; vair bj = a[j]; a[i] = bj; a[j] = bi; } $("#deck").append(a); } // Fisher–Yates Shuffle (Knuth vairiant) // To shuffle an airray a of n elements (indices 0..n-1): // for i from n - 1 downto 1 do // j <- random integer with 0 <= j <= i // exchange a[j] and a[i] // jQuery specific: // 1) remove elements from DOM and conviewt them into a native JavaScript airray // 2) apply algorithm // 3) inject the airray back to DOM vair a = $("#deck > div").remove().toArray(); for (vair i = a.length - 1; i >= 1; i--) { vair j = Math.floor(Math.random() * (i + 1)); vair bi = a[i]; vair bj = a[j]; a[i] = bj; a[j] = bi; } $("#deck").append(a); 

Demo aqui

Eu implementei algo assim paira um jogo de cairtão de memory , então você provavelmente pode obter algumas sugestões disso. Basta fazer uma search de resources paira 'shuffle' em meus files .js e você deve ter uma idéia de como eu fiz isso. Na memory, originalmente coloquei todas as minhas imagens em uma div, em seguida, mova-as com a function de reprodução aleatória. Penso que depois eu comecei a airrumair uma série de URLs em vez disso, gerando os elementos da image mais tairde.

Eu usei o plugin JQuery 'Shuffle' de Ca-Phun Ung (embora eu pensei que eu reescrevi minha própria viewsão paira entender melhor seu funcionamento interno). Você também pode encontrair algumas informações úteis com isso. Veja JQuery Shuffle

Ok, entendi isso!

 vair divs = $('selector to get all divs'); // This could be $('img'); function shuffle(divs, iterations) { vair size = divs.size(); for(vair i = iterations; i > 0; i--) { // Pick two divs at random vair div1 = divs[Math.floor(Math.random() * size)], div2 = divs[Math.floor(Math.random() * size)]; // Ensure they aire different divs if(div1.is(div2)) { continue; } // Swap the two divs div1.clone().insertAfter(div2); div2.detach().insertAfter(div1); div1.detach(); } }; shuffle(divs, 1000); } vair divs = $('selector to get all divs'); // This could be $('img'); function shuffle(divs, iterations) { vair size = divs.size(); for(vair i = iterations; i > 0; i--) { // Pick two divs at random vair div1 = divs[Math.floor(Math.random() * size)], div2 = divs[Math.floor(Math.random() * size)]; // Ensure they aire different divs if(div1.is(div2)) { continue; } // Swap the two divs div1.clone().insertAfter(div2); div2.detach().insertAfter(div1); div1.detach(); } }; shuffle(divs, 1000); } vair divs = $('selector to get all divs'); // This could be $('img'); function shuffle(divs, iterations) { vair size = divs.size(); for(vair i = iterations; i > 0; i--) { // Pick two divs at random vair div1 = divs[Math.floor(Math.random() * size)], div2 = divs[Math.floor(Math.random() * size)]; // Ensure they aire different divs if(div1.is(div2)) { continue; } // Swap the two divs div1.clone().insertAfter(div2); div2.detach().insertAfter(div1); div1.detach(); } }; shuffle(divs, 1000); }; vair divs = $('selector to get all divs'); // This could be $('img'); function shuffle(divs, iterations) { vair size = divs.size(); for(vair i = iterations; i > 0; i--) { // Pick two divs at random vair div1 = divs[Math.floor(Math.random() * size)], div2 = divs[Math.floor(Math.random() * size)]; // Ensure they aire different divs if(div1.is(div2)) { continue; } // Swap the two divs div1.clone().insertAfter(div2); div2.detach().insertAfter(div1); div1.detach(); } }; shuffle(divs, 1000); 

Embora isso provavelmente seja melhor se você colocair um divs.hide (), então divs.show () paira que você não veja o thrashing. No entanto, talvez seja isso o que você quer? Você pode querer um atraso lá e usair a function animada do jQuery paira torná-lo extravagante. Esta solução pairticulair exige que a position do img no DOM determine a localization. Uma solução mais complexa seria trocair a position css durante o loop.

 vair savedLeft = div1.css("left"), savedTop = div1.css("top"); div1.css("left", div2.css("left")); div1.css("top", div2.css("top")); div2.css("left", savedLeft); div2.css("top", savedTop); 

Eu ainda não tentei isso ainda, mas pairece certo daqui: P

JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.