国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
JavaScript-Code
Heim Web-Frontend H5-Tutorial Detaillierte Einführung in den Fortschrittsbalken-Grafikcode des supercoolen HTML5-Partikeleffekts

Detaillierte Einführung in den Fortschrittsbalken-Grafikcode des supercoolen HTML5-Partikeleffekts

Mar 30, 2017 am 10:37 AM
html5

Dies ist eine Fortschrittsbalken-Anwendung, die auf HTML5 und JavaScript basiert. Dieses Fortschrittsbalken-Plugin ist sehr einzigartig. Es wird angezeigt, wenn der Fortschritt erfolgt angezeigt. Partikel--Animations--Effekt, das hei?t, w?hrend der Fortschrittsbalken gleitet, fallen einige kleine Partikel herunter, und der Effekt ist sehr cool. Eine weitere Funktion besteht darin, dass sich bei einer Fortschritts?nderung auch die Farbe des Fortschrittsbalkens ?ndert.

JavaScript-Code

/*========================================================*/  
/* Light Loader
/*========================================================*/
var lightLoader = function(c, cw, ch){

	var _this = this;
	this.c = c;
	this.ctx = c.getContext('2d');
	this.cw = cw;
	this.ch = ch;			

	this.loaded = 0;
	this.loaderSpeed = .6;
	this.loaderHeight = 10;
	this.loaderWidth = 310;				
	this.loader = {
		x: (this.cw/2) - (this.loaderWidth/2),
		y: (this.ch/2) - (this.loaderHeight/2)
	};
	this.particles = [];
	this.particleLift = 180;
	this.hueStart = 0
	this.hueEnd = 120;
	this.hue = 0;
	this.gravity = .15;
	this.particleRate = 4;	

	/*========================================================*/	
	/* Initialize
	/*========================================================*/
	this.init = function(){
		this.loop();
	};

	/*========================================================*/	
	/* Utility Functions
	/*========================================================*/				
	this.rand = function(rMi, rMa){return ~~((Math.random()*(rMa-rMi+1))+rMi);};
	this.hitTest = function(x1, y1, w1, h1, x2, y2, w2, h2){return !(x1 + w1 < x2 || x2 + w2 < x1 || y1 + h1 < y2 || y2 + h2 < y1);};

	/*========================================================*/	
	/* Update Loader
	/*========================================================*/
	this.updateLoader = function(){
		if(this.loaded < 100){
			this.loaded += this.loaderSpeed;
		} else {
			this.loaded = 0;
		}
	};

	/*========================================================*/	
	/* Render Loader
	/*========================================================*/
	this.renderLoader = function(){
		this.ctx.fillStyle = &#39;#000&#39;;
		this.ctx.fillRect(this.loader.x, this.loader.y, this.loaderWidth, this.loaderHeight);

		this.hue = this.hueStart + (this.loaded/100)*(this.hueEnd - this.hueStart);

		var newWidth = (this.loaded/100)*this.loaderWidth;
		this.ctx.fillStyle = &#39;hsla(&#39;+this.hue+&#39;, 100%, 40%, 1)&#39;;
		this.ctx.fillRect(this.loader.x, this.loader.y, newWidth, this.loaderHeight);

		this.ctx.fillStyle = &#39;#222&#39;;
		this.ctx.fillRect(this.loader.x, this.loader.y, newWidth, this.loaderHeight/2);
	};	

	/*========================================================*/	
	/* Particles
	/*========================================================*/
	this.Particle = function(){					
		this.x = _this.loader.x + ((_this.loaded/100)*_this.loaderWidth) - _this.rand(0, 1);
		this.y = _this.ch/2 + _this.rand(0,_this.loaderHeight)-_this.loaderHeight/2;
		this.vx = (_this.rand(0,4)-2)/100;
		this.vy = (_this.rand(0,_this.particleLift)-_this.particleLift*2)/100;
		this.width = _this.rand(1,4)/2;
		this.height = _this.rand(1,4)/2;
		this.hue = _this.hue;
	};

	this.Particle.prototype.update = function(i){
		this.vx += (_this.rand(0,6)-3)/100; 
		this.vy += _this.gravity;
		this.x += this.vx;
		this.y += this.vy;

		if(this.y > _this.ch){
			_this.particles.splice(i, 1);
		}					
	};

	this.Particle.prototype.render = function(){
		_this.ctx.fillStyle = &#39;hsla(&#39;+this.hue+&#39;, 100%, &#39;+_this.rand(50,70)+&#39;%, &#39;+_this.rand(20,100)/100+&#39;)&#39;;
		_this.ctx.fillRect(this.x, this.y, this.width, this.height);
	};

	this.createParticles = function(){
		var i = this.particleRate;
		while(i--){
			this.particles.push(new this.Particle());
		};
	};

	this.updateParticles = function(){					
		var i = this.particles.length;						
		while(i--){
			var p = this.particles[i];
			p.update(i);											
		};						
	};

	this.renderParticles = function(){
		var i = this.particles.length;						
		while(i--){
			var p = this.particles[i];
			p.render();											
		};					
	};

	/*========================================================*/	
	/* Clear Canvas
	/*========================================================*/
	this.clearCanvas = function(){
		this.ctx.globalCompositeOperation = &#39;source-over&#39;;
		this.ctx.clearRect(0,0,this.cw,this.ch);					
		this.ctx.globalCompositeOperation = &#39;lighter&#39;;
	};

	/*========================================================*/	
	/* Animation Loop
	/*========================================================*/
	this.loop = function(){
		var loopIt = function(){
			requestAnimationFrame(loopIt, _this.c);
			_this.clearCanvas();

			_this.createParticles();

			_this.updateLoader();
			_this.updateParticles();

			_this.renderLoader();
			_this.renderParticles();

		};
		loopIt();					
	};

};

/*========================================================*/	
/* Check Canvas Support
/*========================================================*/
var isCanvasSupported = function(){
	var elem = document.createElement(&#39;canvas&#39;);
	return !!(elem.getContext && elem.getContext(&#39;2d&#39;));
};

/*========================================================*/	
/* Setup requestAnimationFrame
/*========================================================*/
var setupRAF = function(){
	var lastTime = 0;
	var vendors = [&#39;ms&#39;, &#39;moz&#39;, &#39;webkit&#39;, &#39;o&#39;];
	for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x){
		window.requestAnimationFrame = window[vendors[x]+&#39;RequestAnimationFrame&#39;];
		window.cancelAnimationFrame = window[vendors[x]+&#39;CancelAnimationFrame&#39;] || window[vendors[x]+&#39;CancelRequestAnimationFrame&#39;];
	};

	if(!window.requestAnimationFrame){
		window.requestAnimationFrame = function(callback, element){
			var currTime = new Date().getTime();
			var timeToCall = Math.max(0, 16 - (currTime - lastTime));
			var id = window.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall);
			lastTime = currTime + timeToCall;
			return id;
		};
	};

	if (!window.cancelAnimationFrame){
		window.cancelAnimationFrame = function(id){
			clearTimeout(id);
		};
	};
};			

/*========================================================*/	
/* Define Canvas and Initialize
/*========================================================*/
if(isCanvasSupported){
  var c = document.createElement(&#39;canvas&#39;);
  c.width = 400;
  c.height = 100;			
  var cw = c.width;
  var ch = c.height;	
  document.body.appendChild(c);	
  var cl = new lightLoader(c, cw, ch);				

  setupRAF();
  cl.init();
}

Oben ist der Fortschrittsbalken von HTML5 super cool Partikeleffekt Der Grafikcode wird im Detail vorgestellt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.miracleart.cn)!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Umgang mit Wiederverbindungen und Fehlern mit HTML5-Server-Sent-Ereignissen. Umgang mit Wiederverbindungen und Fehlern mit HTML5-Server-Sent-Ereignissen. Jul 03, 2025 am 02:28 AM

Bei Verwendung von HTML5SSE sind die Methoden zur Umsetzung mit Wiederverbindung und Fehlern: 1. Verst?ndnis des Standard -Wiederverbindungsmechanismus. EventSource erneut 3 Sekunden nach der Unterbrechung der Verbindung standardm??ig unterbrochen. Sie k?nnen das Intervall über das Wiederholungsfeld anpassen. 2. H?ren Sie sich das Fehlerereignis an, um mit Verbindungsfehler oder Parsenfehlern umzugehen, Fehlertypen zu unterscheiden und die entsprechende Logik auszuführen, z. B. Netzwerkprobleme, die sich auf automatische Wiederverbindung stützen, Serverfehler die Wiederverbindung und Authentifizierungsfehler aktualisieren. 3. Steuern Sie aktiv die Wiederverbindungslogik, wie z. B. manuelles Schlie?en und Wiederaufbau der Verbindung, die maximale Anzahl von Wiederholungszeiten und kombinieren Navigator. Diese Ma?nahmen k?nnen die Anwendungsstabilit?t und die Benutzererfahrung verbessern.

Integration von CSS und JavaScript effektiv in die HTML5 -Struktur. Integration von CSS und JavaScript effektiv in die HTML5 -Struktur. Jul 12, 2025 am 03:01 AM

HTML5, CSS und JavaScript sollten effizient mit semantischen Tags, angemessenen Ladereihenfolge und Entkopplungsdesign kombiniert werden. 1. Verwenden Sie HTML5-Semantik-Tags, wie z. B. die Verbesserung der strukturellen Klarheit und Wartbarkeit, was dem SEO und barrierefreien Zugang f?rderlich ist. 2. CSS sollte eingerichtet werden, externe Dateien verwenden und nach dem Modul aufgeteilt werden, um Inline -Stile und verz?gerte Ladeprobleme zu vermeiden. 3. JavaScript wird empfohlen, voran vorzugehen, und verwenden Sie Defer oder Async, um asynchron zu laden, um das Blockieren des Renders zu vermeiden. 4. Reduzieren Sie die starke Abh?ngigkeit zwischen den drei, führen Sie das Verhalten durch Datenattribute und den Status der Klassennamen und verbessern Sie die Zusammenarbeit Effizienz durch einheitliche Benennungsspezifikationen. Diese Methoden k?nnen die Seitenleistung effektiv optimieren und mit Teams zusammenarbeiten.

Deklarieren Sie den richtigen HTML5 -DocType für moderne Seiten. Deklarieren Sie den richtigen HTML5 -DocType für moderne Seiten. Jul 03, 2025 am 02:35 AM

DocType ist eine Anweisung, die dem Browser mitteilt, mit dem HTML -Standard die Seite analysiert werden soll. Moderne Webseiten müssen nur zu Beginn der HTML -Datei geschrieben werden. Seine Funktion besteht darin, sicherzustellen, dass der Browser die Seite eher im Standardmodus als im seltsamen Modus rendert und sich in der ersten Zeile befinden muss, ohne Leerzeichen oder Kommentare davor. Es gibt nur einen richtigen Weg, um es zu schreiben, und es wird nicht empfohlen, alte Versionen oder andere Varianten zu verwenden. Andere wie Charset, Ansichtsfenster usw. sollten teilweise platziert werden.

Empfangen von Echtzeitdaten mit HTML5-Server-Sent-Ereignissen (SSE). Empfangen von Echtzeitdaten mit HTML5-Server-Sent-Ereignissen (SSE). Jul 02, 2025 pm 04:46 PM

Server-SentEvents (SSE) ist eine leichte L?sung, die von HTML5 bereitgestellt wird, um Echtzeit-Updates in den Browser zu bringen. Es realisiert die Einweg-Kommunikation durch lange HTTP-Verbindungen, die für Aktienmarkte, Benachrichtigungen und andere Szenarien geeignet sind. Erstellen Sie EventSource -Instanz und h?ren Sie auf Nachrichten zu, wenn Sie Folgendes verwenden: canteventSource = newEventSource ('/stream'); eventSource.onMessage = function (Ereignis) {console.log ('empfangene Nachricht:', Ereignis.Data);}; Der Server muss den Inhaltstyp auf Text/Ereignis festlegen

Verbesserung der SEO mit HTML5 Semantic Markup und Microdata. Verbesserung der SEO mit HTML5 Semantic Markup und Microdata. Jul 03, 2025 am 01:16 AM

Die Verwendung von HTML5 -Semantik -Tags und Microdata kann die SEO verbessern, da Suchmaschinen die Seitenstruktur und den Inhalt besser verstehen k?nnen. 1. Verwenden Sie HTML5 -Semantik -Tags wie ,,,, und um die Funktion von Seitenbl?cken zu kl?ren, die Suchmaschinen hilft, ein genaueres Seitenmodell festzulegen. 2. Fügen Sie mikrodata -strukturierte Daten hinzu, um spezifische Inhalte zu markieren, z. B. Artikelautor, Erscheinungsdatum, Produktpreis usw., damit Suchmaschinen Informationstypen identifizieren und diese zur Anzeige der satten Medienzusammenfassung verwenden k?nnen. 3. Achten Sie auf die korrekte Verwendung von Tags, um Verwirrung zu vermeiden, doppelte Tags zu vermeiden, die Effektivit?t strukturierter Daten zu testen, regelm??ig zu aktualisieren, um sich an ?nderungen von schema.org anzupassen und mit anderen SEO-Mitteln zu kombinieren, um langfristig zu optimieren.

Erl?uterung der HTML5 ` vs`  `Elemente. Erl?uterung der HTML5 ` vs` `Elemente. Jul 12, 2025 am 03:09 AM

Es ist ein Element auf Blockebene, das zum Layout geeignet ist. Es ist ein Inline -Element, das zum Wickeln von Textinhalten geeignet ist. 1. Nehmen Sie ausschlie?lich eine Linie ein, Breite, H?he und R?nder k?nnen festgelegt werden, die h?ufig im strukturellen Layout verwendet werden. 2. Keine Zeilenumbrüche, die Gr??e wird durch den Inhalt bestimmt und ist für lokale Textstile oder dynamische Operationen geeignet. 3. Bei der Auswahl sollte es beurteilt werden, ob der Inhalt unabh?ngiger Raum ben?tigt. 4. Es kann nicht verschachtelt werden und ist nicht zum Layout geeignet. 5. Priorit?t wird der Verwendung semantischer Etiketten zur Verbesserung der strukturellen Klarheit und Zug?nglichkeit erteilt.

Erhalten Sie den aktuellen Standort des Benutzers mit der HTML5 -Geolocation -API. Erhalten Sie den aktuellen Standort des Benutzers mit der HTML5 -Geolocation -API. Jul 02, 2025 pm 05:03 PM

Wenn Sie die HTML5Geolocation -API verwenden, um den Benutzerstandort zu erhalten, müssen Sie zun?chst die Benutzerautorisierung einholen und den Zweck zum richtigen Zeitpunkt anfordern und erl?utern. Die grundlegende Methode ist navigator.geolocation.getCurrentPosition (), die erfolgreiche Rückrufe, falsche Rückrufe und Konfigurationsparameter enth?lt. Zu den h?ufigen Gründen für den Fehler geh?ren die Erlaubnis, die nicht unterstützt werden kann, Netzwerkprobleme usw., alternative L?sungen und klare Eingabeaufforderungen sollten bereitgestellt werden. Die spezifischen Vorschl?ge lauten wie folgt: 1. Anforderungsberechtigungen, wenn der Benutzervorgang ausgel?st wird, z. B. Klicken auf die Schaltfl?che; 2. Verwenden Sie EnableHighAccuracy, Timeout, Maximum und andere Parameter, um den Positionierungseffekt zu optimieren. 3.. Fehlerbehandlung sollte zwischen verschiedenen Fehlern unterscheiden

Verst?ndnis der HTML5 -Medienquellenverl?ngerungen (MSE) Verst?ndnis der HTML5 -Medienquellenverl?ngerungen (MSE) Jul 08, 2025 am 02:31 AM

MSE (MediaSourceExtensions) ist Teil des W3C -Standards und erm?glicht es JavaScript, Medienstr?me dynamisch zu erstellen, wodurch erweiterte Video -Wiedergabefunktionen erm?glicht werden. Es verwaltet Medienquellen über MediaSource, speichert Daten von SourceBuffer und stellt den Pufferzeitbereich über Timerangen dar, sodass der Browser Videoclips dynamisch laden und dekodieren kann. Der Prozess der Verwendung von MSE umfasst: ① Erstellen einer MediaSource -Instanz; ② Binden Sie es an ein Element; ③ SourceBuffer hinzufügen, um Daten in einem bestimmten Format zu empfangen. ④ Segmentierte Daten über Fetch () abrufen und an den Puffer anh?ngen. Zu den gemeinsamen Vorsichtsma?nahmen geh?ren: ① Formatkompatibilit?tsprobleme; ② Zeitstempelpaar

See all articles