J'essaie de créer 4 ou 5 éléments différents sur une page qui sont animés pour se déplacer de manière aléatoire à travers l'élément conteneur avec chaque élément ayant un lien unique.Animation de plusieurs éléments avec des balises href uniques
J'ai du mal à comprendre comment générer 5 div différents avec des liens uniques et les faire tous se déplacer aléatoirement/indépendamment les uns des autres autour de la page.
jsFiddle ici: https://jsfiddle.net/vyvqLza7/
code JS:
$(document).ready(function() {
newDiv();
newDiv2();
});
function newDiv() {
var $div = $("<div class='a'><a href='#'>");
$(".animatedDivs").append($div);
animateDiv();
var $div2 = $("<div class='a'><a href='#'>");
$(".animatedDivs").append($div2);
animateDiv2();
function animateDiv() {
var newq = makeNewPosition();
var oldq = $div.offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$div.animate({top: newq[0],left: newq[1]}, speed, function() {animateDiv();});
};
function animateDiv2() {
var newq = makeNewPosition();
var oldq = $div.offset();
var speed = calcSpeed([oldq.top, oldq.left], newq);
$div.animate({ top: newq[0], left: newq[1] }, speed, function() { animateDiv(); });
};
}
function makeNewPosition() {
// Get viewport dimensions (remove the dimension of the div)
var h = 500-80;
var w = $(window).width() - 80;
var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
return [nh, nw];
}
function calcSpeed(prev, next) {
var x = Math.abs(prev[1] - next[1]);
var y = Math.abs(prev[0] - next[0]);
var greatest = x > y ? x : y;
var speedModifier = .4;
var speed = Math.ceil(greatest/speedModifier);
return speed;
}
C'est comme, 99% de ce dont j'ai besoin, je dois juste être en mesure de définir manuellement les liens dans le JS ou Google etc – Fazy
bien, vous pouvez bien sûr ajouter un lier manuellement à la fonction. Il suffit de faire un tableau 'var links = [" https://www.google.at "," Link2 "," Link3 "," Link4 "," Link5 "];' et passez-les à la boucle for avec 'newDiv (links [i]);' Comme dans ce violon: [violon] (https://jsfiddle.net/toffler01/g8c8ro7y/1/) – toffler
J'ai supprimé ma réponse pour supporter celle-ci. Cela fonctionne bien et convient aux besoins de la question. – mumpitz