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 相关文章推荐
window.location.hash 使用说明
Nov 08 Javascript
实现只能输入数字的input不用replace方法
Sep 12 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
JS加载器如何动态加载外部js文件
May 26 Javascript
jQuery的ajax下载blob文件
Jul 21 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
javascript操作cookie
Jan 17 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 Javascript
刷新页面后让控制台的js代码继续执行
Sep 20 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
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
html向js方法传递参数具体实现
2013/08/08 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
AngularJS入门之动画
2016/07/27 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python实现LRU热点缓存及原理
2019/10/29 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
numba提升python运行速度的实例方法
2021/01/25 Python
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
讲座主持词
2014/03/20 职场文书
音乐节策划方案
2014/06/09 职场文书
法制宣传标语集锦
2014/06/25 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
Vue全局事件总线你了解吗
2022/02/24 Vue.js