2010-07-01 7 views
1

J'ai un script JQuery qui agit comme un simple survol d'image avec un joli effet de fondu.Comment randomiser et imiter un rollover dans jquery?

Voici une version de test du script en action - http://fi-testing.co.uk/SO/rubix-cube.html

Comme vous pouvez le voir, il y a 9 blocs, le client souhaite que les survols se produire au hasard (sans vol stationnaire) pour créer une sorte de ondulation/effet pulsatoire. Comment cela pourrait-il être réalisé avec JQuery ou php ?, et serait-il possible que survoler rompe la randomisation et agisse comme d'habitude?

Désolé, tout ceci n'est pas clair.

Merci pour toute aide.

Dan

+1

Je suppose que vous connaissez la différence entre les langages côté serveur comme PHP et les langages côté client comme JavaScript ... –

Répondre

1

Sans aller trop dans votre code, vous pouvez créer l'aléatoire par Math.random()

donc si vous avez un tableau de votre cube entires, indexé 0 - 8, vous pouvez utiliser

var randomNumber = parseInt(Math.random() * 9); 
var randomCube = cubes[randomNumber]; 

vous pouvez utiliser setInterval pour obtenir cette option pour répéter une fois tous x ms

function randomlyChangeCubes() { ... } 

... 

setInterval(randomlyChangeCubes, 2000); 

vous pouvez utiliser jQ Pour appeler l'effet hover manuellement, mais je dirais qu'il serait plus lisible d'extraire le code que vous avez dans hover à une fonction que vous appelez à la fois de hover et de randomlyChangeCubes.

Tout cela étant dit ... faire cela tout à fait au hasard ne sera probablement pas le faire paraître ondulant/palpitation ...

0

choses dont vous auriez besoin:

setTimeout/setInterval = vous appelez 'effet' fonction à un moment de jeu nombre aléatoire = utiliser pour appeler l'élément requis au hasard par exemple # box1, # box2

Je pense que c'est - devrait être assez simple.

0

Il peut être difficile d'accomplir un cool aléatoire. La méthode Math.random() produit des valeurs pseudo-aléatoires à partir de la distribution uniforme (c'est-à-dire que toutes les valeurs dans la plage ont la même probabilité) et cela ne sera pas joli.

Je ne suis pas attendre et je ne peux pas vous dire ce que la distribution donnera de meilleurs résultats mais vous pouvez essayer les distributions normales et Poisson:

http://www.ciphersbyritter.com/JAVASCRP/BINOMPOI.HTM (voir la source pour le code de la page)