HTML爱情许愿树中的文字效果是怎么制作的

HTML爱情许愿树中的文字效果是怎么制作的,第1张

<HTML><HEAD><TITLE>爱情许愿树,情人好运!</TITLE>

<META content="text/htmlcharset=gb2312" http-equiv=Content-Type>

<STYLE type=text/css>TD {

FONT-SIZE: 14pxLINE-HEIGHT: 28px

}

</STYLE>

<META content="Microsoft FrontPage 5.0" name=GENERATOR>

<bgsound src="fallingstar.mid" loop="-1">

</HEAD>

<BODY topmargin=0 bgcolor="#090808" text="#FFFFFF" link="#FFFFFF" vlink="#A2A2A2" alink="#FFFFFF" background="jw.gif" bgproperties="fixed">

<SCRIPT language="vbscript">

num=4

msgbox "进入页面前,请一定照着提示上说的回答,可不要乱写,不然的话会让测试不准确的!切记!现在放松一下,记住,写的时候应该完全是你的第一直觉!!!"

msgbox"这个测试源于印度的一个神秘的密教经典,当时发现它的人按照它说的做了,结果他的愿望在10分钟内就实现了!"

msgbox"这是一个非常奇妙的测试,不知道你做过没有,最好没有旁观者!我做了,非常准确,想不信邪都难!"

y1 = inputbox("1.请输入你一个异性朋友的名字","")

y2 = inputbox("2.请再输入你一个异性朋友的名字","")

t1 = inputbox("3.输入你一个同性朋友的名字","")

t2 = inputbox("4.输入你第二个同性朋友的名字","")

t3 = inputbox("5.再次输入你一个同性朋友的名字","")

m1 = inputbox("6.输入一首你喜欢的歌的名字","")

m2 = inputbox("7.输入另外一首歌的名字","")

m3 = inputbox("8.再输入一首歌的名字 请不要急躁,保持轻松的心态","")

m4 = inputbox("9.最后输入一首喜欢的歌名字","")

num = inputbox("10.输入一个你喜欢的幸运数字","")

wish = inputbox("11.许下一个你的愿望","")

num=num *4

</script>

<SCRIPT language="vbscript">

aa=""

aa=aa+"<div id=ww0 style='DISPLAY: none'><TABLE align=center border=0 width='90%'><TBODY><TR><TD>在你心中" + y1 + " 占据着最重要的位置,你对 " + y1 + " "

aa=aa+"的感觉用 " + m1 + " 这首歌来形容再好不过了。你相信这是上天安排的缘分,因为你深深的爱着"

aa=aa+" " + y1 + " "

aa=aa+"。 对于 " + y2 + " "

aa=aa+",也许是宿命吧,虽然你也喜欢 " + y2 + " "

aa=aa+",但是你们注定不可能在一起,就象 " + m2 + " "

aa=aa+"中唱的一样。<p>" + t1 + " "

aa=aa+"是最关心你的人,而 " + t2 + " "

aa=aa+"是最了解你的人,你们两个在一起会彼此有知己的感觉。 " + t3 + " "

aa=aa+"是你的幸运星,也许会给你带来好运气的哦~!~!~! <p align='left'>" + m3 + " "

aa=aa+"这首歌最能代表你现在的想法。 " + m4 + " "

aa=aa+"这首歌代表你对生活的感受。 把本页推荐给你的 " + cstr(num) + " "

aa=aa+"个朋友,你的愿望--- " + wish + " 就会实现,信不信由你!<br>"

aa=aa+"<br><b><font color=#FF0000>不要把这个心愿放在心里。否则这个心愿会在96小时后离开你。<br>将本页发给你的网友。<br>"

aa=aa+"让您的好友也来许愿,看看会发生什么?<br>在今后的四天里,你会收到一个令你高兴的惊喜。<br>好的东西记得与朋友分享噢!<br></font></b><br>"

aa=aa+"<font color=#276BD1>0-10 人: 你会经历一个小小的变化。<br>11-19 人: 你的生活会按照你期望的方向改进。<br>20-30 人: 在今后4天,你至少得到5个快乐的惊喜。<br>30 人以上:你的生活会发生惊人的变化,你的美梦将会成真。</font></p></TD></TR></TBODY></TABLE></div>"

document.write(aa)

</script>

用html5开发随机生成的大树,你应该没想到40+行代码就可以搞定了吧~接下来就跟大家说说这棵大树是如何在html5开发中实现的。

同样必须要有html容器。新建Index.html,代码如下:

<、html>

1 <、head>

2 <、meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8" />

3 <、title>canvas tree

4 <、/head>

5 <、body>

6 <、script type="text/javascript" src="tree.js">

7 <、/body>

8 <、/html>

接下来咱们开始tree.js:

、var canvas = document.createElement("canvas")

9 var ctx = canvas.getContext("2d")

10 canvas.width = 640

11 canvas.height = 480

12 document.body.appendChild(canvas)

代码很好理解,创建一个canvas画布,然后选择为2d画布,设置长宽,最后将这个画布添加到body标签下。

这个脚本最重要的函数在下面,大树就是递归调用这个函数实现的,调用一次画一条线段:

var drawTree = function (ctx, startX, startY, length, angle, depth, branchWidth){

13 var rand = Math.random,

14 newLength, newAngle, newDepth, maxBranch = 3,

15 endX, endY, maxAngle = 2 * Math.PI / 4,

16 subBraches

17 ctx.beginPath()

18 ctx.moveTo(startX, startY)

19 endX = startX + length * Math.cos(angle)

20 endY = startY + length * Math.sin(angle)

21 ctx.lineCap = 'round'

22 ctx.lineWidth = branchWidth

23 ctx.lineTo(endX, endY)

24 if (depth <= 2){

25 ctx.strokeStyle = 'rgb(0,' + (((rand() * 64) + 128) >>0) + ',0)'

26 } else {

27 ctx.strokeStyle = 'rgb(' + (((rand() * 64) + 64) >>0) + ',50,25)'

28 }

29 ctx.stroke()

30 newDepth = depth - 1

31 if (!newDepth)

32 return

33 subBranches = (rand() * (maxBranch - 1)) + 1

34 branchWidth *= 0.7

35 for (var i = 0i <subBranchesi++){

36 newAngle = angle + rand() * maxAngle - maxAngle * 0.5

37 newLength = length * (0.7 + rand() * 0.3)

38 drawTree(ctx, endX, endY, newLength, newAngle, newDepth, branchWidth)

39 }

40 }

接下来一点点解释:

首先,解释下各个变量的含义。ctx就是前面我们的2d画布startX是线段开始的横坐标,同理startY是纵坐标length是线段长度angle是角度depth是深度,叶子深度为1,树干为12(可自己设定)branchWidth就线段的粗细。有了这些信息,其实就描述了一个线段,通过这些信息我们才能画一个线段。

接下来又很可耻地一大段定义:

var rand = Math.random,

41 newLength, newAngle, newDepth, maxBranch = 3,

42 endX, endY, maxAngle = 2 * Math.PI / 4,

43 subBraches

rand其实就是随机一个0~1之间的实数,顾名思义,接下来这些new的就是下一节线段的各种参数。maxBranch就是最多有3个分叉,最大的角度 PI/2 即为,下一级调整角度在90%范围内。subBranches就是分叉的个数。

好了,重要可以画了:

ctx.beginPath()

44 ctx.moveTo(startX, startY)

45 endX = startX + length * Math.cos(angle)

46 endY = startY + length * Math.sin(angle)

47 ctx.lineCap = 'round'

48 ctx.lineWidth = branchWidth

49 ctx.lineTo(endX, endY)

beginPath()表示告诉浏览器“我要开始画了!”,把之前的记录放弃了,这点有点像ps。moveTo()把光标移动到(startX, startY),再计算终点坐标,endX,endY,有点像高中学的参数方程。然后告诉浏览器,lineCap要round,线段的两头要是圆形的。有多粗呢?等于branchWidth。线段一直画到(endX, endY)。

if (depth <= 2){

50 ctx.strokeStyle = 'rgb(0,' + (((rand() * 64) + 128) >>0) + ',0)'

51 } else {

52 ctx.strokeStyle = 'rgb(' + (((rand() * 64) + 64) >>0) + ',50,25)'

53 }

如果是已经画到了最后两级,即为叶子,那么就rgb就为(0, 128~192, 0)(rgb代表颜色,分别为红绿蓝,red green blue)。还没的话,就在(64~128, 50 ,25)中取。大家可能发现了,rgb必须为整数,但是rand()只能rand实数。大家其实也注意到了有个” >>0″,js当中表示位运算,整体向右移动n位,0就是移动0位。其实它的作用和Math.floor()一样,但是速度更快。

动手画!

ctx.stroke()

这个线段就画好了,是时候准备下它的分叉的时候了。

newDepth = depth - 1

54 if (!newDepth)

55 return

如果这个线段是最后一级,就没有分叉了,也是一个递归的终止条件。

subBranches = (rand() * (maxBranch - 1)) + 1

56 branchWidth *= 0.7

57 for (var i = 0i <subBranchesi++){

58 newAngle = angle + rand() * maxAngle - maxAngle * 0.5

59 newLength = length * (0.7 + rand() * 0.3)

60 drawTree(ctx, endX, endY, newLength, newAngle, newDepth, branchWidth)

61 }

分叉数是1~3中的一个数。然后有多少个分叉,就画几条线段,newAngle为原角度调整90度之内,新长度为原长度的0.7~1.0之间。

最后画出主干,这棵树就可以开始画了。

drawTree(ctx, 320, 470, 60, -Math.PI / 2, 12, 12)

大家可能注意到角度为负,不符合传统观念。但你要知道,画布的纵坐标和传统的坐标轴正好是相反的。

好了,html5开发随机生成的大树代码就这样完成了,怎么样,一点都难吧!

1、第一阶段的能量值:0~895g,这个时候是小树苗。

2、第二阶段的能量值:896~2685g。

3、第三阶段的能量值:2686~5370g。

4、第四阶段的能量值:5371~8950g。

5、第五阶段的能量值:8951~12530g。

6、第六阶段的能量值:12531g以上,这个时候是参天大树了。

扩展资料:

1、蚂蚁森林是阿里巴巴集团在支付宝客户端,为首期"碳账户"设计的一款公益行动,于2016年8月正式推出,曾获联合国“地球卫士奖”。

2、2016年8月,支付宝公益板块正式推出蚂蚁森林,用户步行替代开车、在线缴纳水电煤、网络购票等行为节省的碳排放量,将被计算为虚拟的“绿色能量”,用来在手机里养大一棵棵虚拟树。

3、这棵树长大后,公益组织、环保企业等蚂蚁生态合作者,会“买走”用户的“树”,在现实某个地域种下一棵实体的树。

参考资料来源:百度百科-蚂蚁森林 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7008065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-31
下一篇 2023-03-31

发表评论

登录后才能评论

评论列表(0条)

保存