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实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
Sep 06 Javascript
第一次接触神奇的前端框架vue.js
Dec 01 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
浅谈Angular文字折叠展开组件的原理分析
Nov 24 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
JavaScript数组及常见操作方法小结
Nov 13 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
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实现统计邮件大小的方法
2013/08/06 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
PHP目录操作实例总结
2016/09/27 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue 组件简介
2020/07/31 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python psutil库安装教程
2018/03/19 Python
使用Python来开发微信功能
2018/06/13 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
智能钱包:Ekster
2019/11/21 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
三年大学生活自我鉴定
2014/01/21 职场文书
市场部规章制度
2014/01/24 职场文书
职工运动会邀请函
2014/02/02 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
会议室管理制度范本
2015/08/06 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server