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 相关文章推荐
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
jquery编写Tab选项卡滚动导航切换特效
Jul 17 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 09 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
对python中的装包与解包实例详解
2019/08/24 Python
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
打架检讨书
2015/01/27 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang
Python实现归一化算法详情
2022/03/18 Python
python神经网络ResNet50模型
2022/05/06 Python
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers