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 相关文章推荐
关于document.cookie的使用javascript
Apr 11 Javascript
jquery 实现的全选和反选
Apr 15 Javascript
Prototype框架详解
Nov 25 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
如何快速上手Vuex
Feb 14 Javascript
微信小程序后台解密用户数据实例详解
Jun 28 Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
探索JavaScript中私有成员的相关知识
Jun 13 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 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
PHP常用正则表达式集锦
2014/08/17 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
Django 路由层URLconf的实现
2019/12/30 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
西式婚礼证婚词
2014/01/12 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
创业计划书之干洗店
2019/09/10 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript