鱼C论坛

 找回密码
 立即注册
查看: 3558|回复: 4

关于HTML,CSS JS代码还原

[复制链接]
发表于 2018-4-21 17:53:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ChenpiT 于 2018-4-21 18:22 编辑

想要了解如何实现运行下列代码:


//Html代码
<div>
       <canvas id="canvas"></canvas>
       <canvas id="snow"></canvas>

       <div class="am-g" style="position: fixed; bottom: 0px;">
           <div class="am-u-sm-12">
               <div style="z-index: 9999" id="player" class="aplayer">
               </div>
           </div>
       </div>
   </div>
//CSS代码
canvas {
           position: fixed;
           width: 100%;
           height: 100%;
           z-index: -1;
       }
//引入JS
<script src="~/Content/assets/js/jquery.min.js"></script>   
   <script src="~/Scripts/Blog/universe.js"></script><!--旋转背景-->
   <script src="~/Scripts/Blog/Fireworks.js"></script><!--点击放烟花-->

-------------------------------------分割线-------------------------------------------------------
universe.js
var canvas = document.getElementById('canvas'),
        ctx = canvas.getContext('2d'),
        w = canvas.width = window.innerWidth,
        h = canvas.height = window.innerHeight,

        hue = 217,
        stars = [],
        count = 0,
        maxStars = 1300;//星星数量

var canvas2 = document.createElement('canvas'),
ctx2 = canvas2.getContext('2d');
canvas2.width = 100;
canvas2.height = 100;

var half = canvas2.width / 2,
gradient2 = ctx2.createRadialGradient(half, half, 0, half, half, half);
gradient2.addColorStop(0.025, '#CCC');
gradient2.addColorStop(0.1, 'hsl(' + hue + ', 61%, 33%)');
gradient2.addColorStop(0.25, 'hsl(' + hue + ', 64%, 6%)');
gradient2.addColorStop(1, 'transparent');

ctx2.fillStyle = gradient2;
ctx2.beginPath();
ctx2.arc(half, half, half, 0, Math.PI * 2);
ctx2.fill();

// End cache

function random(min, max) {
   if (arguments.length < 2) {
       max = min;
       min = 0;
   }

   if (min > max) {
       var hold = max;
       max = min;
       min = hold;
   }

   return Math.floor(Math.random() * (max - min + 1)) + min;
}

function maxOrbit(x, y) {
   var max = Math.max(x, y),
     diameter = Math.round(Math.sqrt(max * max + max * max));
   return diameter / 2;
   //星星移动范围,值越大范围越小,
}

var Star = function () {

   this.orbitRadius = random(maxOrbit(w, h));
   this.radius = random(60, this.orbitRadius) / 8;
   //星星大小
   this.orbitX = w / 2;
   this.orbitY = h / 2;
   this.timePassed = random(0, maxStars);
   this.speed = random(this.orbitRadius) / 50000;
   //星星移动速度
   this.alpha = random(2, 10) / 10;

   count++;
   stars[count] = this;
}

Star.prototype.draw = function () {
   var x = Math.sin(this.timePassed) * this.orbitRadius + this.orbitX,
     y = Math.cos(this.timePassed) * this.orbitRadius + this.orbitY,
     twinkle = random(10);

   if (twinkle === 1 && this.alpha > 0) {
       this.alpha -= 0.05;
   } else if (twinkle === 2 && this.alpha < 1) {
       this.alpha += 0.05;
   }

   ctx.globalAlpha = this.alpha;
   ctx.drawImage(canvas2, x - this.radius / 2, y - this.radius / 2, this.radius, this.radius);
   this.timePassed += this.speed;
}

for (var i = 0; i < maxStars; i++) {
   new Star();
}

function animation() {
   ctx.globalCompositeOperation = 'source-over';
   ctx.globalAlpha = 0.5; //尾巴
   ctx.fillStyle = 'hsla(' + hue + ', 64%, 6%, 2)';
   ctx.fillRect(0, 0, w, h)

   ctx.globalCompositeOperation = 'lighter';
   for (var i = 1, l = stars.length; i < l; i++) {
       stars.draw();
       canvas2.style.cssText = "display:none";
   };

   window.requestAnimationFrame(animation);
}


animation();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-21 18:44:43 | 显示全部楼层
以下是我自己还原的,但是浏览器打开时是空白是的,vs上是可以运行出结果的
//index.html文件
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta charset="utf-8" />
    <title>Star</title>
    <link href="/default.css" rel="stylesheet" />
</head>
<body>
        <div>
                <canvas id="canvas"></canvas>
                <canvas id="snow"></canvas>

                <div class="am-g" style="position: fixed; bottom: 0px;">
                        <div class="am-u-sm-12">
                                <div style="z-index: 9999" id="player" class="aplayer">
                                </div>
                        </div>
                </div>
        </div>
    <script src="/main.js/"></script>
</body>
</html>

//main.js文件
var canvas = document.getElementById('canvas'),
        ctx = canvas.getContext('2d'),
        w = canvas.width = window.innerWidth,
        h = canvas.height = window.innerHeight,

        hue = 217,
        stars = [],
        count = 0,
        maxStars = 1300;//星星数量

var canvas2 = document.createElement('canvas'),
        ctx2 = canvas2.getContext('2d');
canvas2.width = 100;
canvas2.height = 100;

var half = canvas2.width / 2,
        gradient2 = ctx2.createRadialGradient(half, half, 0, half, half, half);
gradient2.addColorStop(0.025, '#CCC');
gradient2.addColorStop(0.1, 'hsl(' + hue + ', 61%, 33%)');
gradient2.addColorStop(0.25, 'hsl(' + hue + ', 64%, 6%)');
gradient2.addColorStop(1, 'transparent');

ctx2.fillStyle = gradient2;
ctx2.beginPath();
ctx2.arc(half, half, half, 0, Math.PI * 2);
ctx2.fill();

// End cache

function random(min, max) {
        if (arguments.length < 2) {
                max = min;
                min = 0;
        }

        if (min > max) {
                var hold = max;
                max = min;
                min = hold;
        }

        return Math.floor(Math.random() * (max - min + 1)) + min;
}

function maxOrbit(x, y) {
        var max = Math.max(x, y),
                diameter = Math.round(Math.sqrt(max * max + max * max));
        return diameter / 2;
        //星星移动范围,值越大范围越小,
}

var Star = function () {

        this.orbitRadius = random(maxOrbit(w, h));
        this.radius = random(60, this.orbitRadius) / 8;
        //星星大小
        this.orbitX = w / 2;
        this.orbitY = h / 2;
        this.timePassed = random(0, maxStars);
        this.speed = random(this.orbitRadius) / 50000;
        //星星移动速度
        this.alpha = random(2, 10) / 10;

        count++;
        stars[count] = this;
}

Star.prototype.draw = function () {
        var x = Math.sin(this.timePassed) * this.orbitRadius + this.orbitX,
                y = Math.cos(this.timePassed) * this.orbitRadius + this.orbitY,
                twinkle = random(10);

        if (twinkle === 1 && this.alpha > 0) {
                this.alpha -= 0.05;
        } else if (twinkle === 2 && this.alpha < 1) {
                this.alpha += 0.05;
        }

        ctx.globalAlpha = this.alpha;
        ctx.drawImage(canvas2, x - this.radius / 2, y - this.radius / 2, this.radius, this.radius);
        this.timePassed += this.speed;
}

for (var i = 0; i < maxStars; i++) {
        new Star();
}

function animation() {
        ctx.globalCompositeOperation = 'source-over';
        ctx.globalAlpha = 0.5; //尾巴
        ctx.fillStyle = 'hsla(' + hue + ', 64%, 6%, 2)';
        ctx.fillRect(0, 0, w, h)

        ctx.globalCompositeOperation = 'lighter';
        for (var i = 1, l = stars.length; i < l; i++) {
                stars[i].draw();
                canvas2.style.cssText = "display:none";
        };

        window.requestAnimationFrame(animation);
}


animation();

//default.css文件
canvas {
        position: fixed;
        width: 100%;
        height: 100%;
        z-index: -1;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-21 19:48:30 | 显示全部楼层
ChenpiT 发表于 2018-4-21 18:44
以下是我自己还原的,但是浏览器打开时是空白是的,vs上是可以运行出结果的
//index.html文件

终于找到原因了,这句<script src="/main.js/"></script>应该为<script src="/main.js"></script>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 11:12:12 | 显示全部楼层
自问自答,如果没问题,帮你标记为已解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-23 14:07:38 | 显示全部楼层
不二如是 发表于 2018-4-22 11:12
自问自答,如果没问题,帮你标记为已解决了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 14:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表