JavaScript仿flash遮罩动画效果


Posted in Javascript onJune 15, 2016

本文实例为大家分享了JavaScript仿flash遮罩动画的具体实现代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>仿flash遮罩动画</title>
<meta name="keywords" content="">
<meta name="description" content="">
<script charset="utf-8" src="jquery.js"></script>
<style media="screen">
body{margin:0;}
#banner{position:relative;width:858px;height:238px;overflow:hidden;}
</style>
</head>
<body>
<div id="banner">
  <a href="javascript:void(0);"><img src="1.jpg" width="858" height="238"/></a>
</div>
<script type="text/javascript">
function setMaskingAnimation(container,width,height,time,pixel,color){
  var __left=mtRand(parseInt(width*0.25),parseInt(width*0.75));
  var __top=mtRand(parseInt(height*0.25),parseInt(height*0.75));
  if(width>=height){
    var widthSpeed=parseInt((width/height)*10);
    var heightSpeed=10;
    var __width=widthSpeed;
    var __height=heightSpeed;
  }
  else{
    var widthSpeed=10;
    var heightSpeed=parseInt((height/width)*10);
    var __width=widthSpeed;
    var __height=heightSpeed;
  }
  var hander;
  //
  function getPosition(_width,_height,_left,_top){
    var div1={
      "width":_left,
      "height":_top,
      "left":0,
      "top":0
    };
    var div2={
      "width":_width,
      "height":_top,
      "left":_left,
      "top":0
    };
    var div3={
      "width":width-_left-_width,
      "height":_top,
      "left":_left+_width,
      "top":0
    };
    var div4={
      "width":_left,
      "height":_height,
      "left":0,
      "top":_top
    };
    var div5={
      "width":_width,
      "height":_height,
      "left":_left,
      "top":_top
    };
    var div6={
      "width":width-_left-_width,
      "height":_height,
      "left":_left+_width,
      "top":_top
    };
    var div7={
      "width":_left,
      "height":height-_top-_height,
      "left":0,
      "top":_top+_height
    };
    var div8={
      "width":_width,
      "height":height-_top-_height,
      "left":_left,
      "top":_top+_height
    };
    var div9={
      "width":width-_left-_width,
      "height":height-_top-_height,
      "left":_left+_width,
      "top":_top+_height
    };
    return {
      "div1":div1,
      "div2":div2,
      "div3":div3,
      "div4":div4,
      "div5":div5,
      "div6":div6,
      "div7":div7,
      "div8":div8,
      "div9":div9,
    };
  }
  //
  function mtRand(n1,n2){
    return parseInt(Math.random()*(n2-n1+1)+n1);
  }
  //
  function setDiv(i,position){
    var has=$(container).find("div.mask"+i);
    if(has.length){
      has.css("left",position.left);
      has.css("top",position.top);
      has.css("width",position.width);
      has.css("height",position.height);
    }
    else{
      var html='<div class="mask mask{@i}" style="position:absolute;left:{@left}px;top:{@top}px;width:{@width}px;height:{@height}px;background-color:{@backgroundColor};"></div>';
      html=html.replace('{@i}',i);
      html=html.replace('{@left}',position.left);
      html=html.replace('{@top}',position.top);
      html=html.replace('{@width}',position.width);
      html=html.replace('{@height}',position.height);
      if(i==5){
        html=html.replace('{@backgroundColor}',"transparent");
      }
      else{
        html=html.replace('{@backgroundColor}',color);
      }
      $(container).append(html);
    }
  }
  //
  function play(){
    __width+=pixel*widthSpeed;
    __height+=pixel*heightSpeed;
    __left-=pixel*widthSpeed/2;
    __top-=pixel*heightSpeed/2;
    var position=getPosition(__width,__height,__left,__top);
    for(var i=1;i<=9;i++){
      setDiv(i,position["div"+i]);
    }
    if(position.div1.width<=0 && position.div1.height<=0 && position.div9.width<=0 && position.div9.height<=0){
      window.clearInterval(hander);
      $(container).find("div.mask").remove();
    }
  }
  //
  hander=window.setInterval(play,time);
}
 
$(function(){
  setMaskingAnimation("#banner",858,238,100,2,"#ff0000");
  //第4个参数和第5个参数分别设置20和2效果会比较好
  //第5个参数必须是偶数
});
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家学习JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
Jun 28 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
AngularJs学习第八篇 过滤器filter创建
Jun 08 Javascript
jQuery用FormData实现文件上传的方法
Nov 21 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 #Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 #Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 #Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 #Javascript
JS递归遍历对象获得Value值方法技巧
Jun 14 #Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 #Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 #Javascript
You might like
mysq GBKl乱码
2006/11/28 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python threading多线程编程实例
2014/09/18 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python中join函数简单代码示例
2018/01/09 Python
django缓存配置的几种方法详解
2018/07/16 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python文件读写常见用法总结
2019/02/22 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
四年级数学教学反思
2014/02/02 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python