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操作select下拉列表框的代码
Jun 04 Javascript
工作中常用到的JS表单验证代码(包括例子)
Nov 11 Javascript
探讨JavaScript中的Rest参数和参数默认值
Jul 29 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
使用jQuery实现简单的tab框实例
Aug 22 jQuery
layui实现数据表格点击搜索功能
Mar 26 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
PHP中echo和print的区别
2014/08/28 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python中int与str互转方法
2018/07/02 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
自荐信的格式
2014/03/10 职场文书
平面设计求职信
2014/03/10 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
高三复习计划
2015/01/19 职场文书
放射科岗位职责
2015/02/14 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
家访教师心得体会
2016/01/23 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
担保书范文
2019/07/09 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫