用js实现开花效果

这段代码演示了如何使用JavaScript在网页上实现一个美观的开花特效。通过定义不同帧的花图片,利用定时器控制动画帧切换,实现了花朵随机位置绽放并自动隐藏的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<html>
<head>
   <title>JavaScript实现很漂亮的开花特效 - www.unimagical.com</title>
</head>
<body>
<script language="JavaScript">
var numberofblossoms=15 //数量
var openblossomspeed=200 //速度
var showblossomstime=2  //停留时间

var frame=new Array()
frame[0]=new Image()
frame[0].src="http://www.webdm.cn/images/20091207/flower01.gif"
frame[1]=new Image()
frame[1].src="http://www.webdm.cn/images/20091207/flower02.gif"
frame[2]=new Image()
frame[2].src="http://www.webdm.cn/images/20091207/flower03.gif"
frame[3]=new Image()
frame[3].src="http://www.webdm.cn/images/20091207/flower04.gif"
frame[4]=new Image()
frame[4].src="http://www.webdm.cn/images/20091207/flower05.gif"
frame[5]=new Image()
frame[5].src="http://www.webdm.cn/images/20091207/flower06.gif"

var i_nownumberofframes=0
var i_maxnumberofframes=5
var i_numberofblossoms=0

var marginleft=0
var margintop=0
var marginbottom
var marginright

var timer
var thisblossom

showblossomstime=showblossomstime*1000

function positionblossoms() {
 if (document.all) {  
  marginbottom=document.body.clientHeight-40
     marginright=document.body.clientWidth-40   
  for (i=0;i<=numberofblossoms;i++) {    
   var randx=Math.floor(marginright*Math.random())
   var randy=Math.floor(marginbottom*Math.random())
   thisblossom=eval("document.all.blossom"+i+".style")
   thisblossom.posLeft=randx
   thisblossom.posTop=randy
   thisblossom.visibility="visible"
  }
  thisblossom=eval("blossom0")
  openblossoms()
 }
 
}

function openblossoms() {
 if (document.all) {
  clearTimeout(timer)
  if (i_nownumberofframes<=i_maxnumberofframes) {
   thisblossom.innerHTML="<img src='"+frame[i_nownumberofframes].src+"'>"
   i_nownumberofframes++
   timer=setTimeout("openblossoms()",openblossomspeed)
  }
  else  {
   clearTimeout(timer)
   i_nownumberofframes=0
   switchtonextblossom()
  }
 }
 
}

function switchtonextblossom() {
 if (document.all) {
  i_numberofblossoms++
  if (i_numberofblossoms<=numberofblossoms) {
   thisblossom=eval("blossom"+i_numberofblossoms)
   openblossoms()
  }
  else {
   setTimeout("hideblossoms()",showblossomstime)
  }
 }
 
}

function hideblossoms() {
 if (document.all) {
  for (i=0;i<=numberofblossoms;i++) {    
   thisblossom=eval("document.all.blossom"+i+".style")
   thisblossom.visibility="hidden"
  }
 }
 
}

if (document.all) {
 for (i=0;i<=numberofblossoms;i++) {
  document.write("<div id='blossom"+i+"' style='position:absolute;top:0px;left:0px;visibility:hidden;'><img name='blossomimg"+i+"' src='http://www.webdm.cn/images/20091207/flower01.gif'></div>")
  document.clear()
 }
}

 

window.onresize=positionblossoms
window.onload=positionblossoms

</script>

body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值