JS基于VML技术实现的五角星礼花效果代码


Posted in Javascript onOctober 26, 2015

本文实例讲述了JS基于VML技术实现的五角星礼花效果代码。分享给大家供大家参考,具体如下:

这里演示的五角星礼花,基于HTML+js+VML技术共同编写实现,打开页面即可看到礼花绽放效果,五角星符号可以换成其它的符号,本效果可轻松修改成烟花升空爆炸特效,不过你要事先制作一个烟花的GIF小图,然后替换掉五角星。

运行效果截图如下:

JS基于VML技术实现的五角星礼花效果代码

在线演示地址如下:

具体代码如下:

<HTML>
<HEAD>
<TITLE>五角星礼花</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</HEAD>
<BODY bgColor=#fef4d9>
<CENTER>
<TABLE borderColor=#00FF00 border=5 borderlight="green">
 <TBODY>
 <TR>
 <TD align=middle><!--[if IE ]>
   <STYLE type=text/css>BODY {
    OVERFLOW: hidden
}
v\:* {
    BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><!--[if IE ]>
<SCRIPT language=JavaScript>
colors = new Array();
colors[0] = new Array('yellow', 'lime');
colors[1] = new Array('silver', 'green')
colors[2] = new Array('silver', 'blue');
colors[3] = new Array('silver', 'purple');
colors[4] = new Array('purple', 'white');
colors[5] = new Array('blue', 'silver');
colors[6] = new Array('red', 'fuchsia');
colors[7] = new Array('yellow', 'red');
// Define the maximum number of fire arrows
maximum = 1000;
vmlobj=''; 
 for(i = 0; i < 12; i++){ 
 vmlobj += '<div id="ster'+i+'" style="position:absolute; left:-50px; top-50px; visibility:hidden; z-index:50;">';
 vmlobj += '<v:shape style="width:15px; height:15px;" fillcolor="yellow" coordorigin="0,0" coordsize="200 200">';
 vmlobj += '<v:path v="m 8,65 l 72,65, 92,11, 112,65, 174,65, 122,100, 142,155,92,121, 42,155, 60,100 x e"/>';
 vmlobj += '<v:stroke on="false" /></v:shape></div>';
 }
document.write(vmlobj); vmlobj = null;
aantal = 0;
function begin()
{
try {
 if(aantal == maximum){ return;}
 kleurschema = Math.floor(Math.random() * colors.length);
 posLinks = Math.floor(Math.random() * (document.body.clientWidth - 180));
 posLinks = (posLinks < 170)? 170: posLinks;
 posBoven = Math.floor(Math.random() * (document.body.clientHeight - 180));
 posBoven = (posBoven < 170)? 170: posBoven;
 straal = 0; uiteen = true; teller = 1; flikkereffect = false;
 for(var i = 0; i < 12; i++){
 document.getElementsByTagName('shape')[i].setAttribute('fillcolor', colors[kleurschema][0]);
 document.getElementById('ster'+i).style.visibility = 'hidden'; // 5.0 fix
 document.getElementById('ster'+i).style.left = posLinks;
 document.getElementById('ster'+i).style.top = posBoven;
 }
 document.getElementById('ster0').style.top = (document.body.clientHeight - 20); 
 document.getElementById('ster0').style.visibility = 'visible';
 omhoog();
} catch(e){}
}
function omhoog()
{
try {
 positie = parseInt(document.getElementById('ster0').style.top);
 if(positie > posBoven){
 document.getElementById('ster0').style.top = (positie - 25); 
 setTimeout('omhoog()', 50);
 } else {
  for(i = 1; i < 12; i++){
  document.getElementById('ster'+i).style.top = positie;
  document.getElementById('ster'+i).style.visibility = 'visible';
  } 
 uiteenspatten();
 }
} catch(e){}
}
function uiteenspatten()
{
try {
 if(straal > 120 && straal % 10 == 0){ 
 flikkereffect = true;
 teller = (teller == colors[kleurschema].length)? 0: (teller+1);
 }
 for(var i = 0; i < 12; i++){
 var hoek = i * 30; 
 var piHoek = Math.PI - Math.PI / 180 * hoek;
 var links = posLinks + Math.round(straal * Math.sin(piHoek)); 
 var boven = positie + Math.round(straal * Math.cos(piHoek));
 document.getElementById('ster'+i).style.left = links;
 document.getElementById('ster'+i).style.top = boven;
 if(flikkereffect){
 document.getElementsByTagName('shape')[i].setAttribute('fillcolor', colors[kleurschema][teller]);
 }
 }
 if(straal < 160 && uiteen){
 straal += (straal < 120)? 10: 5;
 setTimeout('uiteenspatten()', 50);
 }
 else if(straal > 120){
 uiteen = false; straal -= 5;
 setTimeout('uiteenspatten()', 50);
 }
 else if(straal <= 120){
 for(var i = 0; i < 12; i++){
 document.getElementById('ster'+i).style.visibility = 'hidden';
 }
 aantal++;
 setTimeout('begin()', 500);
 }
} catch(e) {}
}
window.onload=begin;
</SCRIPT>
<![endif]--></TD></TR></TBODY></TABLE></CENTER>
</BODY>
</HTML>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
Sep 12 Javascript
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
Oct 19 Javascript
JavaScript 更严格的相等 [译]
Sep 20 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
js选择器全面解析
Jun 27 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
Javascript实现倒计时(防页面刷新)实例
Dec 13 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
jquery获取url参数及url加参数的方法
Oct 26 #Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 #Javascript
angular.bind使用心得
Oct 26 #Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 #Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 #Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 #Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 #Javascript
You might like
深入理解PHP中的global
2014/08/19 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Django与JS交互的示例代码
2017/08/23 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
python机器学习实现决策树
2019/11/11 Python
python 基于opencv去除图片阴影
2021/01/26 Python
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
实习报告评语
2014/04/26 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
公司收款委托书范本
2014/09/20 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
店铺转让协议书
2014/12/02 职场文书
滴水洞导游词
2015/02/10 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
公司保密管理制度
2015/08/04 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL