HTML5+CSS3悬浮按钮彩球效果特效代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 HTML5+CSS3悬浮按钮彩球效果特效代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

HTML5+CSS3悬浮按钮彩球效果特效代码

HTML代码(index.html):

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>HTML5+CSS3悬浮按钮彩球效果</title>
    <style>
        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;
            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="js/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>

JS代码(index.js):

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 ){
	vardx = x1 - x2,dy = y1 - y2;
	return Math.atan2(dy,dx);
}
;
	Math.getDistance = function( x1,y1,x2,y2 ){
	varxs = x2 - x1,ys = y2 - y1;
	xs *= xs;
	ys *= ys;
	return Math.sqrt( xs + ys );
}
;
	varFX ={
}
;
	(function(){
	varcanvas = 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(){
	varthisUpdate = 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;
}
;
}
)();
	

CSS代码(style.css):

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;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;}
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
7.21 KB
html5特效
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章