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
Inhaltsverzeichnis 1. Schlaffunktion 2. setTimeou...
Sie müssen Inspiration haben, um eine Website zu g...
Wir wissen, dass die in JS am häufigsten verwende...
Der Sortierbefehl wird sehr häufig verwendet, ver...
Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...
Wir diskutieren hier nicht über PHP-, JSP- oder ....
Inhaltsverzeichnis Überblick 1. Pfadmodul 2. Bis ...
Aufgrund Ihrer Unternehmensstandards gestatten Si...
Inhaltsverzeichnis 1. Grundlegende Verwendung und...
Inhaltsverzeichnis Stabilisierung Einführung Anti...
Nach viel Mühe habe ich endlich den Yum-Installat...
Inhaltsverzeichnis 1. Einleitung 2. Konfiguration...
Drei Modi Bridged (Bridge-Modus), NAT (Network Ad...
Inhaltsverzeichnis MySQL-Protokolldateien binlog ...
Der Artikel zeichnet hauptsächlich den einfachen ...