html5星空特效代码(html流星雨特效)

http://www.itjxue.com  2023-02-14 06:18  来源:未知  点击次数: 

html5中说这段代码定义的函数可以绘制多角星,不知道它的具体意思,麻烦哪位大侠指点一下计算原理

程序可以改动一下,看起来会更容易一点。

// 开始创建路径

context.beginPath();

var dig = Math.PI / n * 4;

//改:var dig = 2*(2*Math.PI / n) ;

//括号里就是将360度平均分成n份

//为什么前面还要乘以2,见下面(2.画这类图形的技巧(或者说规律。))

for(var i = 0; i n ; i++)

{

????var x = Math.sin(i * dig);

????var y = Math.cos(i * dig);

????context.lineTo(x * size + dx ,y * size + dy);

//上面三行改成:

????//var x = dx+size*Math.sin(i * dig); ?//(1)

????//var y = dy+size*Math.cos(i * dig); ?//(2)

????//context.lineTo(x,y);

????//(1),(2)其实是圆的参数方程

????//把(1),(2)再改,如下:

????//var x=dx+size*Math.cos(Math.PI/2-i*dig);//sin变cos

????//var y=dy+size*Math.sin(Math.PI/2-i*dig);//cos变sin

}

context.closePath();

首先至少掌握三点知识。

1.这类图形的特点。

2.画这类图形的技巧(或者说规律。)

3.圆的参数方程。

变量:

n:N角星的顶点数。

dx,dy: N角星的位置,也是N角星中心点的坐标

size: N角星的大小,也是N角星任一顶点到N角星中心点的距离。

angle: 相邻顶点到中心点形成的夹角度

dig: 每一段两点顶点与中心点形成的夹角度

1.这类图形的特点。

特点:

(1)所有的顶点都在一个圆上。圆心O为图形的中心点,半径r为中心点到任一顶点的距离,即size。

(2)任意相邻的两个顶点到中心点所形成的角度相等。则angle=2*PI/n:

2.画这类图形的技巧(或者说规律。)

你给的程序画出来的图形,每画一条线段之间跳过了一个顶点。

举个例子,拿七角星来讲,首先先给七角星的顶点按顺时针编号,即1-7。

你给的程序是这么连的:1-3-5-7-2-6-4-6-1 ,

跟据这点,可得出一个规律:

1-3-5-7-2-6-4-6-1,这个数列,每相邻的两点与中心点形成的角度相等。

即1-3,3-5...形成的角度相等,这个角度即是dig=2*angle。

3.圆的参数方程.

方程如下:(x0,y0)为中心点的坐标。即(dx,dy),a为角度,r为半径即size

x=x0+r*cos(a);

y=y0+r*sin(a);

举个例,画7角星:

从0度的点开始画:按1-3-5-7-2-6-4-6-1画,

那么,

第1点:x=dx+size*cos(0);y=dy+size*sin(0);

第3点:x=dx+size*cos(0+dig*1);y=dy+size*sin(0+dig*1);

第5点: x=dx+size*cos(0+dig*2);y=dy+size*sin(0+dig*2);

...

表达有限,比较凌乱,哈哈。

根据这个原理,我写出下面的函数,画出来的星形比较“骨感”:

//参数的意思与你给出来的一样。

//注,num不能为偶数,否则画出来的不是星形

function drawStar(pan2d,num,x,y,size)

{

????pan2d.beginPath();

????var startAngle=-Math.PI*0.5;// 起点角度

????var dig=Math.PI-Math.PI/num;//var dig=Math.PI-2*Math.PI/num*0.5;

????for(var i=0;inum;i+=1)

????{

????????var angle=startAngle+dig*i;

????????var px=x+size*Math.cos(angle);

????????var py=y+size*Math.sin(angle);

????????pan2d.lineTo(px,py);

????}

????pan2d.closePath();

????pan2d.stroke();

}

网页的星空背景代码

要完成此效果需要两个步骤

第一步:把如下代码加入到body区域中

script language="JavaScript"

!--

SmallStars = 30;

LargeStars = 10;

SmallYpos = new Array();

SmallXpos = new Array();

LargeYpos = new Array();

LargeXpos = new Array();

Smallspeed= new Array();

Largespeed= new Array();

ns=(document.layers)?1:0;

if (ns){

for (i = 0; i SmallStars; i++)

{document.write("LAYER NAME= sn"+i+" LEFT=0 TOP=0 BGCOLOR= #FFFFF0 CLIP= 0,0,1,1 /LAYER")}

for (i = 0; i LargeStars; i++)

{document.write("LAYER NAME= ln"+i+" LEFT=0 TOP=0 BGCOLOR= #FFFFFF CLIP= 0,0,2,2 /LAYER")}

}

else{

document.write( div style="position:absolute;top:0px;left:0px" );

document.write( div style="position:relative" );

for (i = 0; i SmallStars; i++)

{document.write( div id="si" style="position:absolute;top:0;left:0;width:1px;height:1px;background:#fffff0;font-size:1px"/div )}

document.write( /div );

document.write( /div );

document.write( div style="position:absolute;top:0px;left:0px" );

document.write( div style="position:relative" );

for (i = 0; i LargeStars; i++)

{document.write( div id="li" style="position:absolute;top:0;left:0;width:2px;height:2px;background:#ffffff;font-size:2px"/div )}

document.write( /div );

document.write( /div );

}

WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;

WinWidth=(document.layers)?window.innerWidth:window.document.body.clientWidth;

//Inital placement!

for (i=0; i SmallStars; i++)

{

SmallYpos[i] = Math.round(Math.random()*WinHeight);

SmallXpos[i] = Math.round(Math.random()*WinWidth);

Smallspeed[i]= Math.random()*5+1;

}

for (i=0; i LargeStars; i++)

{

LargeYpos[i] = Math.round(Math.random()*WinHeight);

LargeXpos[i] = Math.round(Math.random()*WinWidth);

Largespeed[i]= Math.random()*10+5;

}

function fly(){

var WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;

var WinWidth=(document.layers)?window.innerWidth:window.document.body.clientWidth;

var hscrll=(document.layers)?window.pageYOffset:document.body.scrollTop;

var wscrll=(document.layers)?window.pageXOffset:document.body.scrollLeft;

for (i=0; i LargeStars; i++)

{

LargeXpos[i]-=Largespeed[i];

if (LargeXpos[i] -10)

{

LargeXpos[i]=WinWidth;

LargeYpos[i]=Math.round(Math.random()*WinHeight);

Largespeed[i]=Math.random()*10+5;

}

if (ns){

document.layers[ ln +i].left=LargeXpos[i];

document.layers[ ln +i].top=LargeYpos[i]+hscrll;

}

else{

li[i].style.pixelLeft=LargeXpos[i];

li[i].style.pixelTop=LargeYpos[i]+hscrll;

}

}

for (i=0; i SmallStars; i++)

{

SmallXpos[i]-=Smallspeed[i];

if (SmallXpos[i] -10)

{

SmallXpos[i]=WinWidth;

SmallYpos[i]=Math.round(Math.random()*WinHeight);

Smallspeed[i]=Math.random()*5+1;

}

if (ns){

document.layers[ sn +i].left=SmallXpos[i];

document.layers[ sn +i].top=SmallYpos[i]+hscrll;

}

else{

si[i].style.pixelLeft=SmallXpos[i];

si[i].style.pixelTop=SmallYpos[i]+hscrll;

}

}

setTimeout( fly() ,10);

}

//fly();

//--

/script

第二步:把“onLoad="fly()"”加在body标记里

例如:body onLoad="fly()"

星空代码和旋转代码区别在于哪里

html5特效代码旋转的星空,首先要设置背景为暗一点的背景色或者图片,例如设置成黑色的背景颜色,然后把代码复制到html文件里,设置下下方JS里的一些设置,如星星的数量、星星移动的范围、星星的大小等,保存后用支持html5的浏览器打开就能看到旋转的星空特效。

温馨提示:如果使用复制按钮代码出现错误,建议使用ctrl+c来复制代码。

!doctype html

html

head

meta charset="utf-8"

title旋转的星空/title

style type="text/css"

body{background: black;padding: 0;margin: 0; overflow:hidden}

.header{margin: 0 auto;width: 100%;height: 100%;background-color: #000;position: relative;}

/style

/head

body

div class="header"canvas id="canvas"/canvas/div

script

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 = 3000;//星星数量

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 Mat(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();

};

window.requestAnimationFrame(animation);

}

animation();

/script

/body

/html

用FLASH做星空中星星闪烁效果,找来一段代码,可闪烁的时候背景也跟着动,星星闪的速度想慢点怎么调整?

星星需要先设置实例名称“star”(选中星星影片剪辑,打开属性-实例名称处设置),然后代码第一句这样改:

star.onEnterFrame=function(){

速度要慢,需要影片剪辑内部,将星星的闪烁动画中间的帧加长一些。

怎么给html5背景加上js粒子特效

使用了particles.js

particles.js可以从github网站下载到最新的源码,网址是

使用方法非常简单

第一步,在html中引入脚本文件 particles.min.js,这个文件在下载的压缩包里可以找到

script?src="particles.min.js"/script

第二步,在html中放入一个div容器,设置id为particles-js。这个一般放在所有网页元素的最后面就可以。

div?id="particles-js"/div

style?type="text/css"

#particles-js?{

position:?absolute;

top:0;

width:100%;

}

/style

第三步,设置窗口样式

style?type="text/css"

#particles-js?{

z-index:?-1;

position:?absolute;

top:?0;

width:?100%;

background:?#aaa;

}/style

第四步,脚本生成粒子效果,可以单独放在一个js文件里,也可以放在script标签里。无论如何,这段脚本要出现在div容器之后。

particlesJS("particles-js",?{??"particles":?{????"number":?{??????"value":?380,??????"density":?{????????"enable":?true,????????"value_area":?800

??????}

????},????"color":?{??????"value":?"#ffffff"

????},????"shape":?{??????"type":?"circle",??????"stroke":?{????????"width":?0,????????"color":?"#000000"

??????},??????"polygon":?{????????"nb_sides":?5

??????},??????"image":?{????????"src":?"img/github.svg",????????"width":?100,????????"height":?100

??????}

????},????"opacity":?{??????"value":?0.5,??????"random":?false,??????"anim":?{????????"enable":?false,????????"speed":?1,????????"opacity_min":?0.1,????????"sync":?false

??????}

????},????"size":?{??????"value":?3,??????"random":?true,??????"anim":?{????????"enable":?false,????????"speed":?40,????????"size_min":?0.1,????????"sync":?false

??????}

????},????"line_linked":?{??????"enable":?true,??????"distance":?150,??????"color":?"#ffffff",??????"opacity":?0.4,??????"width":?1

????},????"move":?{??????"enable":?true,??????"speed":?6,??????"direction":?"none",??????"random":?false,??????"straight":?false,??????"out_mode":?"out",??????"bounce":?false,??????"attract":?{????????"enable":?false,????????"rotateX":?600,????????"rotateY":?1200

??????}

????}

??},??"interactivity":?{????"detect_on":?"canvas",????"events":?{??????"onhover":?{????????"enable":?true,????????"mode":?"grab"

??????},??????"onclick":?{????????"enable":?true,????????"mode":?"push"

??????},??????"resize":?true

????},????"modes":?{??????"grab":?{????????"distance":?140,????????"line_linked":?{??????????"opacity":?1

????????}

??????},??????"bubble":?{????????"distance":?400,????????"size":?40,????????"duration":?2,????????"opacity":?8,????????"speed":?3

??????},??????"repulse":?{????????"distance":?200,????????"duration":?0.4

??????},??????"push":?{????????"particles_nb":?4

??????},??????"remove":?{????????"particles_nb":?2

??????}

????}

??},??"retina_detect":?true});

QQ空间星空代码

不知道你说的是哪个 这是现在所有免费代码了

QQ边框代码:

爱的甜蜜蜜 javascript:window.top.space_addItem(16,21903,0,80,500,500,0);

爱你一生不变 javascript:window.top.space_addItem(16,21904,0,80,500,500,0);

爱情轨迹 javascript:window.top.space_addItem(16,21905,0,80,500,500,0);

爱情之旅 javascript:window.top.space_addItem(16,21906,0,80,650,650,0);

回味爱情 javascript:window.top.space_addItem(16,21907,0,80,500,500,0);

偏偏喜欢你 javascript:window.top.space_addItem(16,21908,0,80,500,500,0);

收获爱情 javascript:window.top.space_addItem(16,21909,0,80,500,500,0);

谢谢你的爱 javascript:window.top.space_addItem(16,21910,0,80,500,500,0);

有你真精彩 javascript:window.top.space_addItem(16,21911,0,80,500,500,0);

真的很想你 javascript:window.top.space_addItem(16,21912,0,80,500,500,0);

QQ空间模块移动代码:

版块靠左代码——javascript:window.top.space_addItem(1,9475,0,0,1,1,93);

版块居中代码——javascript:window.top.space_addItem(1,9475,100,0,1,1,93);

版块右移代码——javascript:window.top.space_addItem(1,9475,235,0,1,1,93);

迷失自我:

版块靠左代码——javascript:window.top.space_addItem(1,9475,0,0,1,1,94);

版块居中代码——javascript:window.top.space_addItem(1,9475,100,0,1,1,94);

版块右移代码——javascript:window.top.space_addItem(1,9475,235,0,1,1,94);

彩虹云朵:

版块靠左代码——javascript:window.top.space_addItem(1,8674,0,80,100,100,94);

版块居中代码——javascript:window.top.space_addItem(1,8674,100,80,100,100,94);

版块右移代码——javascript:window.top.space_addItem(1,8674,235,80,100,100,94);

蓝星闪烁:

版块靠左代码——javascript:window.top.space_addItem(1,8674,0,80,100,100,93);

版块居中代码——javascript:window.top.space_addItem(1,8674,100,80,100,100,93);

版块右移代码——javascript:window.top.space_addItem(1,8674,235,80,100,100,93);

浓情马克:

版块靠左代码——javascript:window.top.space_addItem(1,11273,0,80,0,0,94);

版块居中代码——javascript:window.top.space_addItem(1,11273,100,80,0,0,94);

版块右移代码——javascript:window.top.space_addItem(1,11273,235,80,0,0,94);

蓝色皮肤:

版块靠左代码——javascript:window.top.space_addItem(1,11762,0,0,96,96,94);

版块居中代码——javascript:window.top.space_addItem(1,11762,100,0,96,96,94);

版块右移代码——javascript:window.top.space_addItem(1,11762,235,0,96,96,94);

版块右移代码:

黑色:javascript:window.top.space_addItem(1,12736,230,80,0,0,20);

黑色:javascript:window.top.space_addItem(1,9475,230,80,0,0,20);

紫黑:javascript:window.top.space_addItem(1,8669,230,80,0,0,20);

蓝色:javascript:window.top.space_addItem(1,11762,230,80,0,0,20);

隐藏导航代码

javascript:window.top.space_addItem(13,1333,0,80,0,0,94);

隐藏播放器代码

javascript:window.top.space_addItem(6,676,1899,0,200,200,0);

去除横幅代码:

黄钻专用去横幅代码:javascript:window.top.space_addItem(19,15330,0,0,0,0,10000);

QQ空间皮肤代码

七色彩虹:javascript:window.top.space_addItem(1,8674,0,80,100,100,94);

灰色皮肤代码:javascript:window.top.space_addItem(1,6300,0,0,0,0,1);

黑色皮肤:javascript:window.top.space_addItem(1,9475,20,100,0,0,93);

黑暗世界javascript:window.top.space_addItem(1,9475,0,0,1,1,94);

红极一时javascript:window.top.space_addItem(1,11273,0,80,0,0,93);

黑星耀眼javascript:window.top.space_addItem(1,12736,0,80,0,0,93);

玫瑰花javascript:window.top.space_addItem(1,8669,100,80,100,100,123);

静悄悄 javascript:window.top.space_addItem(1,8669,100,80,100,100,94); (带花、居中)

快乐十分javascript:window.top.space_addItem(1,8674,0,80,100,100,94); (彩虹)

迷失世界javascript:window.top.space_addItem(1,9475,0,0,1,1,94);(这个是黑的)

蓝色 javascript:window.top.space_addItem(1,11762,0,0,96,96,94); (蓝的)

睡美人(很漂亮)javascript:window.top.space_addItem(13,9758,0,0,200,600,0);

白色可爱风格:javascript:window.top.space_addItem(1,4703,0,80,0,0,94);

爱情系列:

javascript:window.top.space_addItem(1,7513,0,80,0,0,94);

全红免费皮肤:javascript:window.top.space_addItem(1,11273,0,80,0,0,93);

全橙样式:javascript:window.top.space_addItem(1,15306,0,80,0,0,93);

全蓝样式:javascript:window.top.space_addItem(1,15116,0,80,0,0,93);

全紫样式:javascript:window.top.space_addItem(1,15116,0,80,0,0,93);

淡淡粉色:javascript:window.top.space_addItem(1,7513,0,80,0,0,93);

全绿样式:javascript:window.top.space_addItem(1,7619,0,80,0,0,93);

全粉样式:javascript:window.top.space_addItem(1,4693,0,80,0,0,93);

米白色:javascript:window.top.space_addItem(1,4703,0,80,0,0,94);

紫色带星光: javascript:window.top.space_addItem(1,7510,0,80,0,0,93);

橘黄色:javascript:window.top.space_addItem(1,7513,0,80,0,0,93);

水果绿:javascript:window.top.space_addItem(1,7619,0,80,0,0,93);

浅粉红:javascript:window.top.space_addItem(1,4693,0,0,0,0,93);

天际蓝:javascript:window.top.space_addItem(1,15166,0,80,0,0,93);

(责任编辑:IT教学网)

更多