基于JavaScript实现百叶窗动画效果不只单纯flas可以实现


Posted in Javascript onFebruary 29, 2016

看到这种什么百叶窗的动画,以为都是flash实现的,最近突然灵光一闪,想到了用js实现(虽然我不是做前端的,本人做.net)。代码虽然实现了,但是比较乱,先上个图:

基于JavaScript实现百叶窗动画效果不只单纯flas可以实现

一个js的动画,以前以为只有flash可以实现

代码主要就是一些数学的计算,然后结合html,css打造出类似flash的效果。

下面贴出主要的部分代码:

function all(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
if(!books[i][j])return false;
}
}
return true;
}
function resetBooks(books){
for(var i=;i<self.rows;i++) {
for (var j = ; j < self.columns; j++) {
books[i][j]=false;
}
}
return true;
}
var self=this,timer=null,_iindex= ;
var initdir=[[[,],[,]],[[-,],[,]],[[,-],[-,]],[[,-],[,]],[[,-],[,],[,],[-,]]],dir=initdir[];
var weight=[,,,,];
var initpos=[[{x:,y:-}],[{x:self.columns-,y:-}],[{x:self.columns-,y:self.rows}],[{x:,y:self.rows}],[{x:self.columns/,y:self.rows/}]];
timer=setInterval(function(){
var n=[];
for(var i=;i<self.preDivs.length;i++){
var _div=null,x= ,y=;
for(var j=;j<dir.length;j++){
x=self.preDivs[i].x+dir[j][];
y=self.preDivs[i].y+dir[j][];
if(x>=&&y>=&&x<self.columns&&y<self.rows&&!self.books[y][x]){
self.books[y][x]=true;
_div=self.zzDivStatck[y][x];
n.push({x:x,y:y});
_div.style.backgroundImage = "url(" + self.zzImages[_iindex] + ")";
_div.style.backgroundPositionX = (-x * self.zzDivW) + "px ";
_div.style.backgroundPositionY = (-y * self.zzDivH) + "px";
}
}
}
self.preDivs=n;
if(all(self.books)){
resetBooks(self.books);
var _r=util.randomWeight(weight);
self.preDivs = initpos[_r];
dir=initdir[_r];
_iindex++;
}
if(_iindex>=+self.zzImages.length){
_iindex=;
}
},);

以上代码是使用javascript实现的百叶窗动画效果,希望对大家有所帮助!

Javascript 相关文章推荐
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
js事件监听机制(事件捕获)总结
Aug 08 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
Oct 27 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
Bootstrap响应式表格详解
May 23 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
vue文件运行的方法教学
Feb 12 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
ClearTimeout消除闪动实例代码
Feb 29 #Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 #Javascript
jquery trigger函数执行两次的解决方法
Feb 29 #Javascript
理解js回收机制通俗易懂版
Feb 29 #Javascript
jquery trigger实现联动的方法
Feb 29 #Javascript
基于Javascript实现返回顶部按钮
Feb 29 #Javascript
JavaScript实现斗地主游戏的思路
Feb 29 #Javascript
You might like
php实现TCP端口检测的方法
2015/04/01 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
javascript关于继承解析
2016/05/10 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python实现获取序列中最小的几个元素
2014/09/25 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
Linux操作面试题
2015/02/11 面试题
个人自我鉴定怎么写
2013/10/28 职场文书
函授本科自我鉴定
2014/02/04 职场文书
安全口号大全
2014/06/21 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
李强为自己工作观后感
2015/06/11 职场文书
财务管理制度范本
2015/08/04 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
导游词之吉林花园山
2019/10/17 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python