Ich arbeite an meinem Portfolio und möchte einen animierten Pfeil hinzufügen, um den Benutzer zum Scrollen nach unten einzuladen. Der Pfeil würde aus 2 Blöcken + dem Pfeil bestehen und ich würde sie gerne so animieren: Das erste Element erscheint, dann das zweite (während das erste ausgeblendet wird), dann das dritte (während der 1 erscheint wieder und der zweite wird ausgeblendet). Ich habe viele Skripte wie dieser versucht (die nur für zwei Elementen besteht):Wie mache ich ein HTML-Element mit Js immer wieder erscheinen und wieder verschwinden?
function test() {
for (var i = 1; i < 11; i = i + 1) {
if (i % 2 !== 0) {
document.getElementById('square1').style.visibility = 'visible';
document.getElementById('square2').style.visibility = 'hidden';
} else {
document.getElementById('square1').style.visibility = 'hidden';
document.getElementById('square2').style.visibility = 'visible';
};
};
}
Dies macht nur das Element sichtbar im Browser, dachte ich, dass der Platz zu sein ‚Blinkink‘ zu schnell waren bemerkt, weil die Schleife sehr schnell berechnet wurde, also habe ich versucht, eine Schlaffunktion hinzuzufügen, aber es hat auch nicht funktioniert.
Könnte jemand bitte mir dabei helfen? Als Bonusfrage geht es mir gut mit der Funktion, die ausgeführt wird, wenn die Website geladen wird, aber es wäre noch besser, wenn die Animation starten könnte, wenn der Benutzer zu einem definierten Teil der Website scrollt!
P.S: Ich benutze nicht jQuery, ich möchte in Js graben, bevor Sie Frameworks verwenden.
Danke! Und sorry für mein Englisch :)
Edit: Ich habe endlich eine funktionierende Funktion für die Animation von 3 Elementen. Ich kämpfte ein wenig, aber am Ende konnte es dank Ihrer Hilfe Jungs so vielen Dank für das Beispiel und die Links, die Sie zur Verfügung gestellt Hier ist der Code, wenn es für jedermann interessant ist, ich denke, es könnte Refactoring brauchen, aber ich bin glücklich trotzdem:
function appear() {
alert(container[test]);
document.getElementById(container[test]).style.visibility = 'visible';
if(test === 0) {
document.getElementById(container[test + 1]).style.visibility = 'hidden';
document.getElementById(container[test + 2]).style.visibility = 'hidden';
test++
} else if(test === 1) {
document.getElementById(container[test - 1]).style.visibility = 'hidden';
document.getElementById(container[test + 1]).style.visibility = 'hidden';
test++
} else {
document.getElementById(container[test - 1]).style.visibility = 'hidden';
document.getElementById(container[test - 2]).style.visibility = 'hidden';
test = 0;
}
}
function animate() {
var interval = setInterval(appear, 1000);
}
var test = 0;
var sq1 = 'square1';
var sq2 = 'square2';
var arrow = 'arrow';
var container = [sq1, sq2, arrow];
alert('test' + container);
animate();
Javascript verarbeiten Sie Ihren Code so schnell und Sie werden kein Ergebnis sehen.Sie müssen Verzögerung hinzufügen, damit es funktioniert –
Ja, deshalb habe ich versucht, eine Schlaffunktion hinzufügen, alle Hinweise darüber, wo ich eine Lösung finden könnte Arbeitsverzögerung/Schlaffunktion? – EtienneDh
Sie müssen interval, nicht Schlaf-Funktion setzen Sie bitte dieses Dokument http://www.w3schools.com/jsref/met_win_setinterval.asp –