Aus einer Laune heraus habe ich eine Fallstudie über einen kleinen Ball geschrieben, der hin und her springt, damit Sie es nachlesen können. Der spezifische Inhalt ist wie folgt Die Hauptmethode besteht darin , den linken/oberen Randwert für die Verschiebung zu verwenden. Natürlich können Sie hierfür auch die Positionierung verwenden. In diesem Fall werden folgende verwendet:
Zum Code Verwenden Sie natives JS als Ganzes <Stil> //Stil Stil* { Rand: 0; Polsterung: 0; } #Kasten { Breite: 500px; Höhe: 600px; Hintergrundfarbe: #eee; Kastenschatten: 0 0 10px 0 #000; Rand: automatisch; Überlauf: versteckt; Position: relativ; Rand oben: 50px; } #box div { Breite: 50px; Höhe: 50px; Randradius: 50 %; Hintergrundfarbe: #fff; Position: absolut; } </Stil> <Text> <div id="box"> <div id="cir"></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> </body> <Skript> var box = document.getElementById("box"); var cir = document.getElementById("cir") var cirs = box.querySelectorAll("div"); collMove(box, Kreis, 6); collMove(box, cirs[1], 7); collMove(box, cirs[2], 8); collMove(box, cirs[3], 9); collMove(box, cirs[4], 10); collMove(box, cirs[5], 10); collMove(box, cirs[6], 11); /** * Das Element wird angezeigt, wenn es auf eine Grenze trifft. * Ändert die Farbe des Elements beim Anzeigen. * @param {Abzurufender Container} box * @param {hol das Bounce-Element im Container} cir * @param {bounce speed} Geschwindigkeit */ function collMove(box, cir, speed) { //Methodenkapselung var oDiv = box; //Container abrufen var oCir = cir; //Element im Container abrufen var xMax = oDiv.offsetWidth - oCir.offsetWidth; //Maximale X-Achsengrenze des Containers var yMax = oDiv.offsetHeight - oCir.offsetHeight; //Maximale Y-Achsengrenze des Containers var motionX = 0; //Initialisierung der X-Achsenkoordinate des Elements var motionY = 0; //Initialisierung der Y-Achsenkoordinate des Elements (() => { var speedX = Geschwindigkeit; //Offset der x-Achse var speedY = Geschwindigkeit; //Offset der y-Achse setInterval(() => { motionX += speedX; //X-Achsen-Offset ausführenmotionY += speedY; //Y-Achsen-Offset ausführenif (motionX >= xMax) { //Überprüfen, ob die rechte Grenze der X-Achse erreicht wirdmotionX = xMax; //Bei Erreichen der Grenze die X-Achsenkoordinate auf die maximale rechte Grenze der X-Achse setzenspeedX = -speedX; //X-Achsen-Offset umkehrenrandColor(oCir); //Farbe ändern} else if (motionX <= 0) { //Überprüfen, ob die linke Grenze der X-Achse erreicht wirdmotionX = 0; //Bei Erreichen der Grenze die X-Achsenkoordinate auf 0 setzen, d. h. auf die Anfangsposition der linken GrenzespeedX = -speedX; //X-Achsen-Offset erneut umkehrenrandColor(oCir); //Dasselbe gilt unten für die Erkennung der oberen und unteren Grenze} wenn (BewegungY >= yMax) { BewegungY = yMax; GeschwindigkeitY = -GeschwindigkeitY Randfarbe(oCir); } sonst wenn (BewegungY <= 0) { BewegungY = 0; GeschwindigkeitY = -GeschwindigkeitY; Randfarbe(oCir); } oCir.style.marginLeft = motionX + "px"; //X-Achsenkoordinate des Elements festlegen oCir.style.marginTop = motionY + "px"; //Y-Achsenkoordinate des Elements festlegen }, 10); })(); function randColor(obj) { //Eine zufällige Farbe einkapseln, die Farbe ändern und direkt aufrufen var op = Math.random() * 7 + 3; Funktion Farbe() { gibt Math.floor(Math.random() * 256) zurück; } return obj.style.backgroundColor = `rgba(${color()},${color()},${color()},${op})`; } } </Skript> Das Wichtigste bei der gesamten Methode ist , die Erkennung und Beurteilung der Elementposition und der Containergrenzen zu verstehen . Sobald Sie diesen Teil verstanden haben, ist der Rest sehr einfach. Wirf einen Ziegelstein: für(var i = 1 ; i<=10;i++){ collMove(box,cirs[i],i); } Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der MySQL-Mehrtabellenabfrage
>>: So beheben Sie den PyCurl-Fehler unter Linux
Schließung Dienst Nginx stoppen systemctl stoppt ...
Vorwort Erfahren Sie, wie Sie auf Ihrem System ei...
Physisch gesehen besteht eine InnoDB-Tabelle aus ...
Bei der Durchführung eines Projekts stößt man unw...
In diesem Artikelbeispiel wird der spezifische Ja...
1. Dynamische Komponenten <!DOCTYPE html> &...
Die folgenden CSS-Klassennamen, die mit einer Zah...
Inhaltsverzeichnis 1. Baidu-Enzyklopädie 1. MySQL...
In diesem Artikelbeispiel wird der spezifische Co...
Das jQuery-Plug-In implementiert das Dashboard zu...
Dieser Artikel stellt hauptsächlich den Kreisdiag...
1. Immobilienliste Code kopieren Der Code lautet w...
Inhaltsverzeichnis MySQL-Löschsyntax-Aliasproblem...
In Webprojekten nutzen wir häufig die Zeitleisten...
Inhaltsverzeichnis 1. Testumgebung 1.1 CentOS 7 i...