效果图

各位长友大家上午好!

今天给大家带来的是 css3 按钮粒子烟花特效源码!

大家可以按照自己的意愿进行修改!

需要文档版本源码,可以加我的HTML5前端交流群111645711

好了,废话不多说,上源码!

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;

}

}

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 ) {

var xs = x2 - x1,

ys = y2 - y1;

xs *= xs;

ys *= ys;

return Math.sqrt( xs + ys );

};

var FX = {};

(function() {

varcanvas = document.getElementByIdx_x('myCanvas'),

ctx = canvas.getContext('2d'),

lastUpdate = new Date(),

mouseUpdate = new Date(),

lastMouse = [],

width, height;

FX.particles = [];

setFullscreen();

document.getElementByIdx_x('button').addEventListener('mousedown',

buttonEffect);

function buttonEffect() {

var button = document.getElementByIdx_x('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

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 = windows.innerWidth;

height = canvas.height = windows.innerHeight;

};

})();

css3 烟 蚊香_HTML5前端特效库 css3 按钮粒子烟花特效源码相关推荐

  1. html烟花特效案例,HTML5前端特效库 css3 按钮粒子烟花特效源码

    HTML5前端特效库 css3 按钮粒子烟花特效源码 效果图 各位长友大家上午好! 今天给大家带来的是 css3 按钮粒子烟花特效源码! 大家可以按照自己的意愿进行修改! 有想要文件版源码的可以 在我 ...

  2. css3 烟 蚊香_前端每日实战:48# 视频演示如何用纯 CSS 创作一盘传统蚊香

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码. 请用 chrome, s ...

  3. web网页设计——体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码

    web网页设计--体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手 ...

  4. 基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVAWeb前端开发技术儿童教育网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: ...

  5. Markdown编辑器:纯前端演示(可接入项目、含源码下载) - 总结篇

    可接入项目,提供全部代码下载. 通过本地html静态文件,演示效果. Editor.md是一款开源的.可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror.jQuery 和 Ma ...

  6. 【C++标准库】std::string用法指南源码剖析

    文章目录 1.ASCII码 (1)计算机如何表达字符 2.C 语言中的字符类型 char (1)思想:char 即整数 (3)C 语言帮手函数 (4)C语言中的字符串 (4)C 语言转义符 3.C++ ...

  7. SEAL全同态加密开源库(七) rns剩余数系统-源码解析

    SEAL全同态加密开源库(七) rns剩余数系统-源码解析 2021SC@SDUSC 2021-11-14 前言 这是SEAL开源库代码分析报告第六篇,本篇将分析util文件夹中的rns.h和rns. ...

  8. html5 banner特效,HTML5特效库 CSS3遮罩banner动画特效源码

    效果图 各位朋友.大家早上好! 今天给大家带来的是 CSS3遮罩banner动画特效源码! 看倦的轮播图的,可以试试这个特效!别有一番意思! 大家可以按照自己的意愿进行行修改,改成自己喜欢的样子! 有 ...

  9. html5 css3舞台灯光,HTML5特效库 CSS3 实现灯光照射显示文字动画源码

    效果图 各位朋友,大家好! 今天给大家带来的特效源码是 CSS3 实现灯光照射显示文字动画源码 是不是很炫酷,大家可以按照自己的想法进行修改! 有想要文件版源码的可以私聊我 废话不多说,上源码! CS ...

最新文章

  1. 深度:生成模型(GAN)的最新进展
  2. 滑动门和翻转门实现的横竖双tab标签测试页面(附源码)
  3. 无线多操作系统启动之uInitrd阶段NFS挂载篇
  4. 实例讲解js中的预编译
  5. AIX 用户密码永不过期
  6. STM32U5来了,100份好礼免费送!
  7. [回归分析][10]--相关误差的问题
  8. python之列表操作
  9. 容器安全 - 限制docker/podman只能使用有效签名的镜像
  10. linux r后台执行,screen 命令简单用法 Linux后台执行 就用它
  11. mybatis 主键自增 insert后返回主键
  12. GitHub student pack
  13. socket,ioctl获取ip
  14. 跟着辛星认识一下PHP的自己主动载入
  15. js代码格式化java api_Javascript 代码格式化(JsFormat)
  16. NetSuite 财务科目合并
  17. 微信自定义分享功能;分享朋友,分享到朋友圈
  18. [Java] [SurfaceView] 使用EGL
  19. 禅道开源版用户手册_禅道的安装与使用指南
  20. @SuppressWarnings(deprecation) java编程中方法上有这个注释是什么意思??

热门文章

  1. 自定义配置数据源 DataSource
  2. C语言之continue和break用法学习笔记
  3. EEGLAB安装、EDF数据导入、EEG预处理(Matlab)
  4. NB-Iot烟感04:BC26模块原理图设计
  5. AMD GPU 实用工具 rocm-smi 使用方法
  6. 自动白平衡技术(WhiteBalance)(转自Harri的blog)
  7. Linux_基本指令
  8. 叶成-人员管理-机构管理
  9. 利用JS写一个计算平方的网页
  10. Jest测试语法系列之Expect