博客
关于我
跟随鼠标移动的星星✩直接在页面引用✧✧✧
阅读量:347 次
发布时间:2019-03-04

本文共 2381 字,大约阅读时间需要 7 分钟。

效果✩:

在这里插入图片描述

直接在你的页面引用方法✩:

1.新建一个名为 canvasStar.js的文件:

在这里插入图片描述

2.右键打开该 js 文件,把下面代码复制进去:

window.addEventListener('load',()=>{       var canvas = document.querySelector("#canvas");    var ctx = canvas.getContext("2d");          window.onresize=resizeCanvas;    function resizeCanvas(){          canvas.width=window.innerWidth;       canvas.height=window.innerHeight;    }       resizeCanvas();     canvas.style.cssText = `    position: fixed;    z-index: 1000;    pointer-events: none;    `    //    var arr = [];    var colours =["#ffff00","#66ffff","#3399ff","#99ff00","#ff9900"];        //    window.addEventListener('mousemove', e=>{                           arr.push({                   x:e.clientX,                y:e.clientY,                r:Math.random()*0.5+1.5,                td:Math.random()*4-2,                dx:Math.random()*2-1,                dy:Math.random()*1+1,                rot: Math.random()*90+90,                color: colours[Math.floor(Math.random()*colours.length)]            });               })    //    function star(x,y,r,l,rot){          ctx.beginPath();        for(let i=0;i<5;i++){                       ctx.lineTo(Math.cos((18 + i*72 -rot)*Math.PI/180)*r+x,           -Math.sin((18 + i*72 - rot)*Math.PI/180)*r+y);           ctx.lineTo(Math.cos((54+i*72-rot)*Math.PI/180)*l+x               ,-Math.sin((54+i*72 -rot)*Math.PI/180)*l+y);                     }        ctx.closePath();       }    //    function draw(){           for(let i=0;i<arr.length;i++){               let temp = arr[i];            star(temp.x,temp.y,temp.r,temp.r*3,temp.rot);            ctx.fillStyle = temp.color;            ctx.strokeStyle = temp.color;            ctx.lineWidth = 0.1;            ctx.lineJoin = "round";            ctx.fill();            ctx.stroke();        }    }        //    function update(){           for(let i=0;i<arr.length;i++){               arr[i].x += arr[i].dx;            arr[i].y += arr[i].dy;            arr[i].rot += arr[i].td;            arr[i].r -= 0.015;            if(arr[i].r<0){                   arr.splice(i,1);            }        }    }            setInterval(()=>{           ctx.clearRect(0,0,canvas.width,canvas.height);        draw();        update();    },20)})

3. 在你想要的显示效果的页面插入该js文件:

如在这引入,src写上文件在的路径:
在这里插入图片描述

4.在body里添该加标签:

<canvas id="canvas"></canvas>

如:
在这里插入图片描述
以上就完成了~

总结:

这样在你的网页就可以直接看到跟随鼠标移动的小星星效果了,如果需要解释代码意思和制作过程的留言,我可以下次出篇文章详细说说怎么做~
在这里插入图片描述

其它文章:












…等

转载地址:http://rtir.baihongyu.com/

你可能感兴趣的文章
使用async、await改善异步代码
查看>>
零基础入门JavaScript 这一篇笔记就够了
查看>>
MySQL_安全管理、表单传值、php操作
查看>>
B1021 个位数统计 (15 分)
查看>>
java中的字符串
查看>>
Idiot 的间谍网络
查看>>
MySql索引及使用、实现的数据结构
查看>>
初探SSRF漏洞
查看>>
pythonBug入门——从零开始学python
查看>>
js中[]、{}、()的区别
查看>>
js-禁止右键菜单代码、禁止复制粘贴代码
查看>>
搭建samba服务器
查看>>
Java: 错误: 不支持发行版本 5
查看>>
SpringBoot中使用Mybatis访问MySQL数据库(使用xml方式)
查看>>
python中的map( )函数及lambda()函数简介
查看>>
普通平衡树板子
查看>>
JSP内置对象:操作cookie、session对象
查看>>
【SE-02】多线程-02
查看>>
$set的使用(视图不能实时更新)
查看>>
一、硬件防火墙
查看>>