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 相关文章推荐
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
非html5实现js版弹球游戏示例代码
Sep 22 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
jquery点击展示与隐藏更多内容
Dec 03 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
Vue自定义指令拖拽功能示例
Feb 17 Javascript
Vue.js实战之Vuex的入门教程
Apr 01 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
node.js中module模块的功能理解与用法实例分析
Feb 14 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
Sep 11 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php程序之die调试法 快速解决错误
2009/09/17 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP加密技术的简单实现
2016/09/04 PHP
php显示页码分页类的封装
2017/06/08 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
浅析python中while循环和for循环
2019/11/19 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Django使用rest_framework写出API
2020/05/21 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
《莫高窟》教学反思
2014/02/25 职场文书
大国崛起日本观后感
2015/06/02 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python