基于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 相关文章推荐
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
Aug 14 Javascript
公共js在页面底部加载的注意事项介绍
Jul 18 Javascript
JQuery的$命名冲突详细解析
Dec 28 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
通过构造函数实例化对象的方法
Jun 28 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
Jul 20 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
Aug 04 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 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 split汉字
2009/06/05 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
Yii2如何批量添加数据
2016/05/17 PHP
js验证是否为数字的总结
2013/04/14 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
SVM基本概念及Python实现代码
2017/12/27 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
Python的缺点和劣势分析
2019/11/19 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
四年的大学生生活自我评价
2013/12/09 职场文书
委托书样本
2014/04/02 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
安全承诺书格式范本
2015/04/28 职场文书
高中同学会致辞
2015/08/01 职场文书
申请吧主发表的感言
2015/08/03 职场文书
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers