基于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 相关文章推荐
JavaScript this 深入理解
Jul 30 Javascript
JQuery下拉框应用示例介绍
Apr 23 Javascript
JavaScript使用addEventListener添加事件监听用法实例
Jun 01 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
IONIC自定义subheader的最佳解决方案
Sep 22 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
vue项目中使用Svg的方法
Oct 24 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
Jan 10 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 Javascript
javascript局部自定义鼠标右键菜单
Dec 08 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写的求多项式导数的函数代码
2012/07/04 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
php下Memcached入门实例解析
2015/01/05 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python获得图片base64编码示例
2014/01/16 Python
python实现超市扫码仪计费
2018/05/30 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python提取频域特征知识点浅析
2019/03/04 Python
如何使用Python 打印各种三角形
2019/06/28 Python
Python交互式图形编程的实现
2019/07/25 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
如何写好建议书
2014/03/13 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis