H5酷炫效果

Wesley13
• 阅读 597
<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>线性渐变动画</title>
    <style>
        body{
            width:100%;
            overflow:hidden;
            margin:0;
            background: hsla(0,0%,0%,1);
        }
    </style>
</head>
<body>
    <canvas id="canvas"></canvas>
    <script>
        var c = document.getElementById('canvas'),
            $ = c.getContext('2d'),
            w = c.width = window.innerWidth,                                //设置 Canvas 宽度(全屏)
            h = c.height = window.innerHeight,                              //设置 Canvas 高度(全屏)
            t = 0, num = 450,                                               //num = 450 绘制数量
            u = 0, _u,                                                      //线性渐变的颜色值
            s, a, b, 
            x, y, _x, _y,
            _t = 1 / 100;                                                   
            //控制摆动速度

        var anim = function() {
            $.globalCompositeOperation = 'source-over';                     //默认,在目标图像上显示源图像
            $.fillStyle = 'hsla(0, 0%, 0%, .75)';                           //填充颜色
            $.fillRect(0, 0, w, h);                                         //绘制“已填色”的矩形
            $.globalCompositeOperation = 'lighter';                         //显示源图像 + 目标图像
            for (var i = 0; i < 2; i++) {
                x = 0; _u = (u / 4)+i;
                $.beginPath();
                //循环绘制个数(num),正弦 Math.sin(弧度),余弦 Math.cos(弧度)
                for (var j = 0; j < num; j++) {
                    x -= .72 * Math.sin(4);
                    y = x * Math.sin(i + 3.0 * t + x / 20) / 2;
                    _x = x * Math.cos(b) - y * Math.sin(b);
                    _y = x * Math.sin(b) + y * Math.cos(b);
                    b = (j * 3) * Math.PI / 6.8;
                    $.lineWidth = .18;                                      //线条宽度
                    $.arc(w / 2 - _x, h / 2 -_y, .5, 0, 2 * Math.PI);       //画圆(半径0.5)
                }

                //设置线性渐变
                var g = $.createLinearGradient(w / 2 + _x, h / 2 + _y,  0, w / 2 + _x, h / 2 + _y);
                g.addColorStop(0.0, 'hsla('+ u +',85%,50%,1)');
                g.addColorStop(0.5, 'hsla('+ _u +',85%,40%,1)');
                g.addColorStop(1, 'hsla(0,0%,5%,1)'); 
                $.strokeStyle = g;                                          //线条颜色为 g(线性渐变)
                $.stroke();
            }
            t += _t;                                                        //摆动速度会不断增加
            u -= .2;                                                        //改变颜色值
            window.requestAnimationFrame(anim);                             //绘制动画 anim
        };
        anim();

        //监听,当浏览器宽度和高度改变时,改变 Canvas 的宽度和高度
        window.addEventListener('resize', function() {
            c.width = w = window.innerWidth;
            c.height = h = window.innerHeight;
        }, false);
    </script>
</body>
</html>

静态效果图如下(没做flash)要看实际效果直接复制代码就行

H5酷炫效果

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
vue 2.0 第一个坑,组件不显示的问题
<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleappcomponent</title</head<body<ol<todoitem</todoit
Easter79 Easter79
3年前
svg自适应写法
svg自适应写法<pre<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleDocument</title</head<body<divstyle"width:30%;height:3.6rem;"<svg
Easter79 Easter79
3年前
table超出长度隐藏的字符用省略号表示
<!doctypehtml <htmllang"en" <head   <metacharset"UTF8"/   <title表格演示</title   <styletype"text/css"     table{        wid
Wesley13 Wesley13
3年前
JS高级
<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title</title</head<body<script//为内置对象添加原型方法//实例中的方
Stella981 Stella981
3年前
JavaScript DOM操作案例自定义属性的设置跟获取
<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title</title<styleli{liststyletype:none;
Wesley13 Wesley13
3年前
HTML5 基础知识(二)
<!DOCTYPEhtml<htmllang"en"<head<metacharset"utf8"/<title</title</head<body</body</html<!DOCTYPEhtml
Stella981 Stella981
3年前
43ECharts:心电图效果
一、心电图效果之单线条html:run<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleEcharts实现心电图效果</title<scriptsrc"https:
Wesley13 Wesley13
3年前
Echarts
<!DOCTYPEhtml<html   <head      <metacharset"utf8"/      <title</title   </head   <body      <divid"main"style"height:600px;width:500
Stella981 Stella981
3年前
JavaScript设置倒计时效果
<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title倒计时效果</title</head<body<formname"myForm"<inputtype"t
Stella981 Stella981
3年前
JavaScript语法基础
字符串<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<title字符串语法</title</head<body<scripttype"text/javascrip