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 相关文章推荐
JavaScript 拾漏补遗
Dec 27 Javascript
JavaScript Event学习第六章 事件的访问
Feb 07 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
使用JS读秒使用示例
Sep 21 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
Aug 21 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
Vue递归实现树形菜单方法实例
Nov 06 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
一些星际专用术语解释
2020/03/04 星际争霸
CI框架实现创建自定义类库的方法
2018/12/25 PHP
用js来解决ajax读取页面乱码
2010/11/28 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
详解python进行mp3格式判断
2016/12/23 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python学生信息管理系统
2018/03/13 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
党员教师个人对照检查材料范文
2014/09/25 职场文书
小学生教师节广播稿
2015/08/19 职场文书
岗位聘任协议书
2015/09/21 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书