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 相关文章推荐
js中的异常处理try...catch使用介绍
Sep 21 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
详细分析jsonp的原理和实现方式
Nov 20 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
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获取某个目录大小的代码
2008/09/10 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
ExtJs的Date格式字符代码
2010/12/30 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
Python的re模块正则表达式操作
2016/05/25 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
电子专业自荐信
2014/07/01 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2014年电工工作总结
2014/11/20 职场文书
民事上诉状范文
2015/05/22 职场文书
培训简讯范文
2015/07/20 职场文书
医院病假条怎么写
2015/08/17 职场文书
python爬虫selenium模块详解
2021/03/30 Python