Particle Button

Developer
Size
3,807 Kb
Views
12,144

How do I make an particle button?

What is a particle button? How do you make a particle button? This script and codes were developed by Timo Hausmann on 16 October 2022, Sunday.

Particle Button Previews

Particle Button - Script Codes HTML Codes

<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Particle Button</title> <style> /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */ body {	margin: 0; overflow: hidden;	}	#myCanvas {	display: block;	}
#button {	font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;	position: absolute;	font-size: 1.5em;	text-transform: uppercase;	padding: 7px 20px;	left: 50%;	width: 200px;	margin-left: -100px;	top: 50%;	border-radius: 10px;	color: white;	text-shadow: -1px -1px 1px rgba(0,0,0,0.8);	border: 5px solid transparent;	border-bottom-color: rgba(0,0,0,0.35);	background: hsla(260, 100%, 50%, 1);	cursor: pointer; outline: 0 !important;	animation: pulse 1s infinite alternate;	transition: background 0.4s, border 0.2s, margin 0.2s;	}	#button:hover {	background: hsla(220, 100%, 60%, 1);	margin-top: -1px;	animation: none;	}	#button:active {	border-bottom-width: 0;	margin-top: 5px;	}	@keyframes pulse {	0% {	margin-top: 0px;	}	100% {	margin-top: 6px;	}	} </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
</head>
<body> <button id="button">click me</button>
<canvas id="myCanvas" width="500" height="500"></canvas> <script src="js/index.js"></script>
</body>
</html>

Particle Button - Script Codes CSS Codes

body {	margin: 0; overflow: hidden;	}	#myCanvas {	display: block;	}
#button {	font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;	position: absolute;	font-size: 1.5em;	text-transform: uppercase;	padding: 7px 20px;	left: 50%;	width: 200px;	margin-left: -100px;	top: 50%;	border-radius: 10px;	color: white;	text-shadow: -1px -1px 1px rgba(0,0,0,0.8);	border: 5px solid transparent;	border-bottom-color: rgba(0,0,0,0.35);	background: hsla(260, 100%, 50%, 1);	cursor: pointer; outline: 0 !important;	animation: pulse 1s infinite alternate;	transition: background 0.4s, border 0.2s, margin 0.2s;	}	#button:hover {	background: hsla(220, 100%, 60%, 1);	margin-top: -1px;	animation: none;	}	#button:active {	border-bottom-width: 0;	margin-top: 5px;	}	@keyframes pulse {	0% {	margin-top: 0px;	}	100% {	margin-top: 6px;	}	}

Particle Button - Script Codes JS Codes

window.requestAnimFrame = (function () {	return window.requestAnimationFrame ||	window.webkitRequestAnimationFrame ||	window.mozRequestAnimationFrame ||	window.oRequestAnimationFrame ||	window.msRequestAnimationFrame ||	function (callback) {	window.setTimeout(callback, 1000 / 60);	};	})();	Math.randMinMax = function(min, max, round) {	var val = min + (Math.random() * (max - min));	if( round ) val = Math.round( val );	return val;	};	Math.TO_RAD = Math.PI/180;	Math.getAngle = function( x1, y1, x2, y2 ) {	var	dx = x1 - x2,	dy = y1 - y2;	return Math.atan2(dy,dx);	};	Math.getDistance = function( x1, y1, x2, y2 ) {	var	xs = x2 - x1,	ys = y2 - y1;	xs *= xs;	ys *= ys;	return Math.sqrt( xs + ys );	};	var	FX = {};	(function() {	var	canvas = document.getElementById('myCanvas'),	ctx = canvas.getContext('2d'),	lastUpdate = new Date(),	mouseUpdate = new Date(),	lastMouse = [],	width, height;	FX.particles = [];	setFullscreen();	document.getElementById('button').addEventListener('mousedown', buttonEffect);	function buttonEffect() {	var button = document.getElementById('button'),	height = button.offsetHeight,	left = button.offsetLeft,	top = button.offsetTop,	width = button.offsetWidth,	x, y, degree;	for(var i=0;i<40;i=i+1) {	if( Math.random() < 0.5 ) {	y = Math.randMinMax(top, top+height);	if( Math.random() < 0.5 ) {	x = left;	degree = Math.randMinMax(-45,45);	} else {	x = left + width;	degree = Math.randMinMax(135,225);	}	} else {	x = Math.randMinMax(left, left+width);	if( Math.random() < 0.5 ) {	y = top;	degree = Math.randMinMax(45,135);	} else {	y = top + height;	degree = Math.randMinMax(-135, -45);	}	}	createParticle({	x: x,	y: y,	degree: degree,	speed: Math.randMinMax(100, 150),	vs: Math.randMinMax(-4,-1)	});	}	}	window.setTimeout(buttonEffect, 100);	loop();	window.addEventListener('resize', setFullscreen );	function createParticle( args ) {	var options = {	x: width/2,	y: height/2,	color: 'hsla('+ Math.randMinMax(160, 290) +', 100%, 50%, '+(Math.random().toFixed(2))+')',	degree: Math.randMinMax(0, 360),	speed: Math.randMinMax(300, 350),	vd: Math.randMinMax(-90,90),	vs: Math.randMinMax(-8,-5)	};	for (key in args) { options[key] = args[key];	}	FX.particles.push( options );	}	function loop() {	var	thisUpdate = new Date(),	delta = (lastUpdate - thisUpdate) / 1000,	amount = FX.particles.length,	size = 2,	i = 0,	p;	ctx.fillStyle = 'rgba(15,15,15,0.25)';	ctx.fillRect(0,0,width,height);	ctx.globalCompositeStyle = 'lighter';	for(;i<amount;i=i+1) {	p = FX.particles[ i ];	p.degree += (p.vd * delta);	p.speed += (p.vs);// * delta);	if( p.speed < 0 ) continue;	p.x += Math.cos(p.degree * Math.TO_RAD) * (p.speed * delta);	p.y += Math.sin(p.degree * Math.TO_RAD) * (p.speed * delta);	ctx.save();	ctx.translate( p.x, p.y );	ctx.rotate( p.degree * Math.TO_RAD );	ctx.fillStyle = p.color;	ctx.fillRect( -size, -size, size*2, size*2 );	ctx.restore();	}	lastUpdate = thisUpdate;	requestAnimFrame( loop );	}	function setFullscreen() {	width = canvas.width = window.innerWidth;	height = canvas.height = window.innerHeight;	};	})();
Particle Button - Script Codes
Particle Button - Script Codes
Home Page Home
Developer Timo Hausmann
Username timohausmann
Uploaded October 16, 2022
Rating 4.5
Size 3,807 Kb
Views 12,144
Do you need developer help for Particle Button?

Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!

Timo Hausmann (timohausmann) Script Codes
Create amazing video scripts with AI!

Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!