CSS3 verwendet Transform, um eine bewegliche 2D-Uhr zu erstellen

CSS3 verwendet Transform, um eine bewegliche 2D-Uhr zu erstellen

Nachdem wir den transform Kurs abgeschlossen haben, schauen wir uns ein Beispiel an. Wir werden rotate von transform verwenden, um eine Uhr zu erstellen, und sie dann mit dem Timer von JavaScript zum Ticken bringen.

Machen Sie einen Screenshot:

Fall-Wissenspunktanalyse:

1. Verwenden Sie die Positionierung, um die Zeichnung der Uhr zu vervollständigen.

2. Der Hintergrund verwendet einen radialen Farbverlauf.

3. Verwenden Sie JavaScript, um die Rotation von Skalen und Zeitzahlen abzuschließen.

4. Rufen Sie die Systemzeit über das Date()-Objekt ab und lassen Sie den Stundenzeiger auf die entsprechende Skala zeigen.

5. Verwenden Sie den Timer, um die Zeit kontinuierlich zu aktualisieren und die Bewegung des Stundenzeigers abzuschließen.

1. HTML-Quellcode

<div id="Uhr-Wrap">
	<div id="Uhr">
    	<ul id="Liste">
        </ul>
    </div>
    <div id="num">
    	<ul>
        	<li>12</li>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
            <li>9</li>
            <li>10</li>
            <li>11</li>
        </ul>
    </div>
    <div id="Stunde"></div>
    <div id="min"></div>
    <div id="sec"></div>
    <div id="Kreis"></div>
</div>

2. CSS-Stil

<style id="css">/*Beachten Sie, dass dem Style-Tag eine ID hinzugefügt wird, die in JavaScript abgerufen wird und der CSS-Style hinzugefügt wird. */
Körper,ul{
	Rand: 0;
	Polsterung: 0;}
Körper{
	Schriftart:1em „Microsoft Yahei“;
	Farbe: Nr. 666;
	Hintergrundfarbe: #333;}
h1{
	Textausrichtung: zentriert;
	Farbe: #eee;
	Schriftgröße: 3rem;}
li{
	Listenstil: keine;}
P{
	Textausrichtung: zentriert;
	Farbe: #ddd;
	Position: relativ;
	oben: 100px;
	}
A{
	Farbe: Nr. 999;
	Textdekoration: keine;
	Übergang: 0,2 s;}
ein:schweben{
	Farbe: #ddd;}
#Uhr-Wrap{
	Breite: 400px;
	Höhe: 400px;
	Rand: 10px durchgezogen #fff;
	Randradius: 50 %;
	Rand: 80px automatisch 0;
	Position: relativ;
	Boxschatten: 0 0 40px rgba (0,0,0,1)}
#Uhr ul{
	Breite: 400px;
	Höhe: 400px;
	Position: relativ;
	Randradius: 50 %;
	Hintergrund: radialer Farbverlauf (Kreis in der Mitte, #667eea, #764ba2);
	box-shadow:0 0 50px rgba(0,0,0,0.5) inset; /*Inneren Schatten setzen*/
	}
#Uhr ul li{
	Position: absolut;
	links: 50 %;
	Rand links: -2px;
	oben: 0;
	Breite: 4px;
	Höhe: 10px;
	Hintergrund: rgba (255,255,255,.5);
	transform-origin:center 200px; /*li‘s Rotationszentrum liegt in der Mitte des Kreises. */
	}
#clock li:nth-child(5n+1){ /*5 Tonleitern bilden eine Gruppe, und die erste Tonleiter jeder Gruppe sollte länger sein. */
	Höhe: 18px;
	}
#num{
	Position: absolut;
	Breite: 360px;
	Höhe: 360px;
	links: 0;
	rechts:0;
	oben: 0;
	unten: 0;
	Rand: automatisch;
	}
#num li{
	Position: absolut;
	links: 50 %;
	Rand links: -10px;
	oben: 0;
	Farbe: rgba(255,255,255,.5);
	Schriftart: 2em Arial, Helvetica, serifenlos;	
	transform-origin:center 180px;}

#Stunde,#Min,#Sek
	Hintergrund:#fff;
	Position: absolut;
	links: 50 %;
	oben: 50 %;
	transform-origin:bottom; /*Der Rotationspunkt des Stundenzeigers befindet sich unten. */
	Kastenschatten: 0 0 6px rgba (0,0,0,.5)
	}
#Stunde{
	Breite: 14px;
	Höhe: 100px;
	Rand links: -7px;
	Rand oben: -100px;
	Rahmenradius: 3px;
	}
#min{
	Breite: 10px;
	Höhe: 150px;
	Rand links: -5px;
	Rand oben: -150px;
	Rahmenradius: 2px;
	}
#Sek{
	Breite: 4px;
	Höhe: 180px;
	Rand links: -2px;
	Rand oben: -180px;
	Rahmenradius: 1px;
	}
#Kreis{
	Breite: 40px;
	Höhe: 40px;
	Randradius: 50 %;
	Hintergrund:#fff;
	Position: absolut;
	links: 50 %;
	Rand links: -20px;
	oben: 50 %;
	Rand oben: -20px;
	Boxschatten: 0 0 20px rgba (0,0,0,.4)}
</Stil>

3. JavaScript-Code

<Skript>
fenster.onload = funktion(){
	var oList = document.getElementById("Liste");
	var oCSS=document.getElementById("css"); //Das Style-Tag kann auch ein ID-Attribut hinzufügen.
	var aNums = document.getElementById("num").getElementsByTagName("li");
	var oHour = document.getElementById("Stunde");
	var oMin = document.getElementById("min");
	var oSec=document.getElementById("sec");
	var aLi="";
	var sCSS="";
	for(var i=0;i<60;i++){ //60-malige Schleife, um den Skalenwert und den Rotationsgrad jeder Skala zu generieren.
		aLi+="<li></li>";
		sCSS+="#clock li:nth-child("+(i+1)+"){transform:rotate("+i*6+"deg);}"
		}
	für(var i=0;i<12;i++){
		sCSS+="#num li:nth-child("+(i+1)+"){transform:rotate("+i*30+"deg);}"
		}
	oList.innerHTML=aLi;
	oCSS.innerHTML+=sCSS; //css muss an das ursprüngliche CSS-Dokument angehängt werden.
	
	
	
	myTime(); //Initialisierungsfunktion.
	setInterval(myTime,1000); //Stellen Sie den Timer so ein, dass die Funktion jede Sekunde ausgeführt wird.
	Funktion meineZeit(){
		var oDate=neues Datum();
		var iSec=oDate.getSeconds(); 
		//Minuten mit Genauigkeit auf Sekunden.
		var iMin=oDate.getMinutes()+iSec/60; 
		//Stunden auf Minuten und Sekunden genau. Kann beim Drehen präziser sein.
		var iHour=oDate.getHours()+iMin/60;
		
		oSec.style.transform="drehen("+iSec*6+"Grad)";
		oMin.style.transform="drehen("+iMin*6+"Grad)";
		oHour.style.transform="rotate("+iHour*30+"deg)"; //Die Richtung des Stundenzeigers muss Minuten und Sekunden enthalten, um genau zu sein.
		}
	
	}
</Skript>

Oben finden Sie Einzelheiten zur Verwendung der CSS3-Transformation zum Erstellen einer beweglichen 2D-Uhr. Weitere Informationen zur CSS3-Transformation finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

<<:  base target="" steuert den Ziel-Open-Frame des Links

>>:  JavaScript implementiert eine einzelne verknüpfte Listenprozessanalyse

Artikel empfehlen

Schreiben Sie ein Publish-Subscribe-Modell mit JS

Inhaltsverzeichnis 1. Szeneneinführung 2 Code-Opt...

MySQL Serie 12 Backup und Wiederherstellung

Inhaltsverzeichnis Tutorial-Reihe 1. Beschreibung...

So installieren und implementieren Sie MySQL 8.0 unter CentOS8

Die offizielle Version 8.0.11 von MySQL 8 wurde v...

Verwendung der JavaScript-Sleep-Funktion

Inhaltsverzeichnis 1. Schlaffunktion 2. setTimeou...

Detaillierte Erklärung zum Einrichten eines DNS-Servers unter Linux

1. DNS-Server-Konzept Die Kommunikation im Intern...

Detaillierte Beschreibung des HTML-Meta-Viewport-Attributs

Was ist ein Ansichtsfenster? Mobile Browser platzi...

Bild-Tag für HTML-Webseite

Bild-Tag <IMG> einfügen Die farbenfrohen Web...

JavaScript implementiert Feuerwerkseffekte mit Soundeffekten

Ich habe eine halbe Stunde gebraucht, um den Code...

Beispiele für die Verwendung von DD DT DL-Tags

Normalerweise verwenden wir die Tags <ul><...