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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 Javascript
BootStrap按钮标签及基本样式
Nov 23 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 Javascript
node.js命令行教程图文详解
May 27 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
谈一谈收音机的高放电路
2021/03/02 无线电
php 什么是PEAR?
2009/03/19 PHP
PHP里的中文变量说明
2011/07/23 PHP
初品cakephp 入门基础
2012/02/16 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
List Installed Hot Fixes
2007/06/12 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Js apply方法详解
2017/02/16 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
python 队列详解及实例代码
2016/10/18 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python安装及变量名介绍详解
2020/12/12 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
教师年终个人总结
2015/02/11 职场文书
毕业生政审意见范文
2015/06/04 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript