Heim >Web-Frontend >js-Tutorial >Erstellen Sie Puzzlespiele mit jQuery_jquery
Quellcode-Ideenanalyse:
【1】Um ein Bildraster zu erstellen, fallen mir zwei Methoden ein:
(1) Schneiden Sie dieses große Bild in 16 kleine Bilder und verwenden Sie dann den src des img-Tags
(2) Es gibt nur ein großes Bild, und dann wird das Hintergrundbild jedes Elements mithilfe der Hintergrundposition von CSS ausgeschnitten und positioniert, was 16 Arrays [0,0], [-150,0] erfordert. [-300 ,0]..........(Ich übernehme das)
【2】Bildhintergrund-Positionierungsarray und Layout-Positionierungsarray
Nachdem Sie sich für die Verwendung von CSS zum Positionieren und Ausschneiden des Bildes entschieden haben, müssen Sie Daten generieren.
Das erforderliche CSS-Hintergrundpositionierungsarray ist: [0,0],[-150,0],[-300,0],[-450,0],
[0,-150],[-150,-150],[-300,-150],[-450,-150],
[0,-300],[-150,-300],[-300,-300],[-450,-300],
[0,-450],[-150,-450],[-300,-450],[-450,-450]
Dabei werden die Werte in [0,-150,-300,-450] verwendet (das heißt, ich definiere die Höhe und Breite des Bildes als Vielfaches von 150), also verwende ich diesen Wert um es automatisch über for(){} Array
zu generieren[3] Bestimmen Sie, ob es abgeschlossen ist
Das zweite Element (div) wendet die CSS-Hintergrundpositionierung this.aBgp[1] an (Wert ist [-150,0,1]), und die zufällig zugewiesene Layoutpositionierung ist this.aLayout[3] (hier ist 3 zufällig). generiert) (der Wert ist [453,0]), dann left:453px,top:0;
Durch das Verschieben dieses Elements ändern sich seine letf- und top-Werte, nicht die Reihenfolge seiner eigenen Struktur. Erhalten Sie die linken und top-Werte dieses Elements (wenn es nach left:151px, top:0 verschoben wird). , und dann verwenden Beurteilen Sie anhand des Werts [151,0] von this.aLayout[1] (der 1-Index ist der [bg-i] = 1 des eigenen Label-Attributs und der Index von this.aBgp[1]), Gleichheit bedeutet, dass sich das Element bewegt hat. Die hintere Position ist korrekt.Detaillierter Code: